On Thu, 2009-07-16 at 13:55 -0700, Michael Eager wrote: > I've tracked down a failure in gdb to hit a breakpoint > set at printf to the the breakpoint being placed incorrectly. > > Here is the code generated for printf with -mhard-float: > > .loc 1 29 0 > .cfi_startproc > .LVL0: > mflr 0 > stwu 1,-112(1) > .LCFI0: > .cfi_def_cfa_offset 112 > stw 5,24(1) > stw 0,116(1) > stw 6,28(1) > stw 7,32(1) > stw 8,36(1) > stw 9,40(1) > stw 10,44(1) > bne- 1,.L2 <<< - 1 > .cfi_offset 65, 4 > .loc 1 29 0 <<< - 2 > stfd 1,48(1) <<< - 3 > stfd 2,56(1) > stfd 3,64(1) > stfd 4,72(1) > stfd 5,80(1) > stfd 6,88(1) > stfd 7,96(1) > stfd 8,104(1) > .L2: > .loc 1 34 0 > > Gdb places a breakpoint at printf() at the stfd instruction (3). > This appears to be because of the .loc at (2). When the code is > executed, the branch (1) is taken, jumping over the the breakpoint. > I think that the .loc at (2) should not be generated, since it is > in the middle of the prologue code.
Luis, isn't there a bugzilla regarding this? This seems to me to be similar to what you had been looking at. Peter