[EMAIL PROTECTED] gcc]$ cat /tmp/x.c #include <stdio.h> void foo (int x, int y, int z) { printf ("hello\n"); }
int main () { foo (3000, 3303, -193); } [EMAIL PROTECTED] gcc]$ ./xgcc -B./ -m32 -mforce-drap -mstackrealign /tmp/x.c -g [EMAIL PROTECTED] gcc]$ /usr/bin/gdb a.out GNU gdb Fedora (6.8-12.fc9) ... (gdb) b foo Breakpoint 1 at 0x80483b5: file /tmp/x.c, line 6. (gdb) r Starting program: /export/build/gnu/gcc-work/build-x86_64-linux/gcc/a.out Breakpoint 1, foo () at /tmp/x.c:6 6 printf ("hello\n"); Missing separate debuginfos, use: debuginfo-install glibc.i686 (gdb) The unreferenced parameters aren't available. The problem is when DRAP is used to align stack, the parameters are referenced via internal_arg_pointer, which may be a copy of DRAP. When the RTL that assigning DRAP to internal_arg_pointer is optimized away since it is never referenced in the function body, mem_loc_descriptor finds a pseudo register: if (REGNO (rtl) < FIRST_PSEUDO_REGISTER) mem_loc_result = based_loc_descr (rtl, 0, VAR_INIT_STATUS_INITIALIZED); where rtl is internal_arg_pointer and doesn't generate debug info. -- Summary: [4.4 Regression] No debug info on unreferenced parameters Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hjl dot tools at gmail dot com GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37002