This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Strange backtrace from GDB 7.5.91


I saw today a very strange backtrace, while debugging with GDB 7.5.91,
which I got by stepping through relocate_gdb_directory:

  (top-gdb) s
  relocate_path (flag=1, initial=0x71a51b "d:/usr/share/gdb",
      progname=0x260ed0 "d:\\usr\\eli\\utils\\gdb-7.5.91\\gdb\\gdb.exe")
      at main.c:124
  124       dir = relocate_path (gdb_program_name, initial, flag);
  (top-gdb) bt
  #0  relocate_path (flag=1, initial=0x71a51b "d:/usr/share/gdb",
      progname=0x260ed0 "d:\\usr\\eli\\utils\\gdb-7.5.91\\gdb\\gdb.exe")
      at main.c:124
  #1  relocate_gdb_directory (
      initial=initial@entry=0x71a51b "d:/usr/share/gdb", flag=flag@entry=1)
      at main.c:124
  #2  0x004f0b1d in captured_main (data=data@entry=0x572ff10) at main.c:399

But relocate_path's argument list is this:

  relocate_path (const char *progname, const char *initial, int flag)

i.e., the FLAG argument is the last one, not the first one.

After one more "step", relocate_path appears twice in the backtrace,
once with correct order of arguments, the other one with an incorrect
order:

  (top-gdb) s
  relocate_path (initial=0x71a51b "d:/usr/share/gdb",
      progname=0x260ed0 "d:\\usr\\eli\\utils\\gdb-7.5.91\\gdb\\gdb.exe",
      flag=<optimized out>) at main.c:109
  109         return make_relative_prefix (progname, BINDIR, initial);
  (top-gdb) bt
  #0  relocate_path (initial=0x71a51b "d:/usr/share/gdb",
      progname=0x260ed0 "d:\\usr\\eli\\utils\\gdb-7.5.91\\gdb\\gdb.exe",
      flag=<optimized out>) at main.c:109
  #1  relocate_path (flag=1, initial=0x71a51b "d:/usr/share/gdb",
      progname=0x260ed0 "d:\\usr\\eli\\utils\\gdb-7.5.91\\gdb\\gdb.exe")
      at main.c:120
  #2  relocate_gdb_directory (
      initial=initial@entry=0x71a51b "d:/usr/share/gdb", flag=flag@entry=1)
      at main.c:124
  #3  0x004f0b1d in captured_main (data=data@entry=0x572ff10) at main.c:399

Is this due to inlining or something?  Is this a bug?

The compiler was GCC 4.7.2, if that matters, and the compilation
switches were "-g3 -O2".  MinGW GCC produced DWARF-2 debug info.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]