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().

Reply via email to