http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55586
Bug #: 55586 Summary: Incorrect .debug_line section for function with variable number of arguments in PowerPC Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassig...@gcc.gnu.org ReportedBy: p...@oktetlabs.ru This is PowerPC problem. Example: Code: int my_function(int x, ...) { return x+1; } dwarfdump for this code shows the following .debug_line section: ... 0x01800490 [ 3, 0] NS uri: "1.c" 0x018004bc [ 3, 0] NS 0x018004e0 [ 4, 0] NS ... Disassembler in GDB shows: (gdb) disass my_function Dump of assembler code for function my_function: 0x01800490 <+0>: stwu r1,-120(r1) 0x01800494 <+4>: stw r31,116(r1) 0x01800498 <+8>: mr r31,r1 0x0180049c <+12>: stw r4,12(r31) 0x018004a0 <+16>: stw r5,16(r31) 0x018004a4 <+20>: stw r6,20(r31) 0x018004a8 <+24>: stw r7,24(r31) 0x018004ac <+28>: stw r8,28(r31) 0x018004b0 <+32>: stw r9,32(r31) 0x018004b4 <+36>: stw r10,36(r31) 0x018004b8 <+40>: bne cr1,0x18004dc <my_function+76> 0x018004bc <+44>: stfd f1,40(r31) 0x018004c0 <+48>: stfd f2,48(r31) 0x018004c4 <+52>: stfd f3,56(r31) 0x018004c8 <+56>: stfd f4,64(r31) 0x018004cc <+60>: stfd f5,72(r31) 0x018004d0 <+64>: stfd f6,80(r31) 0x018004d4 <+68>: stfd f7,88(r31) 0x018004d8 <+72>: stfd f8,96(r31) 0x018004dc <+76>: stw r3,104(r31) .... So at try to set breakpoint at my_function() function, GDB sets breakpoint at address 0x018004bc, which is not correct because this address is unreachable if we do not pass floating point arguments to my_function().