The attached program is extracted from the gdb testsuite (gdb.base/annota3.c)
According to Dan, the code generated by gcc is missing a .loc directive: http://sources.redhat.com/ml/gdb-patches/2004-12/msg00143.html i.e. gcc generates: .loc 1 6 0 handle_USR1: .PROC .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3 .ENTRY copy %r3,%r1 .LCFI0: copy %r30,%r3 .LCFI1: stwm %r1,64(%r30) .LCFI2: stw %r26,-36(%r3) ldo 64(%r3),%r30 ldwm -64(%r30),%r3 bv,n %r0(%r2) .EXIT .PROCEND but there should be another .loc 1 6 0 before the ldo insn. gcc-3.4 handles this properly. -- Summary: Missing .loc information after prologue Product: gcc Version: 3.3.5 Status: UNCONFIRMED Severity: normal Priority: P2 Component: debug AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tausq at debian dot org CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: hppa-unknown-linux GCC host triplet: hppa-unknown-linux GCC target triplet: hppa-unknown-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18856