[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#89637: exim_tidydb crashes



Mark Baker wrote:
> As I understand it, debian distributing stripped binaries that originally
> had symbols in (rather than not putting them in in the first place) means
> that if I get a non-stripped binary it should have everything at the same
> addresses as the distributed one so should let me debug your core dump.

Wow, really? If so, that's a very good rationalle for requiring packages
be built with -g, even if DEB_BUILD_OPTIONS does not contain "debug".

However...

joey@gumdrop:~>cat bad.c
main () {
  static char *p;
  int x;
  for (x=0; x < 100000; x++)
        p[x]=x;
}
joey@gumdrop:~>gcc bad.c -o bad   
joey@gumdrop:~>./bad
zsh: segmentation fault (core dumped)  ./bad
+ exit 139
joey@gumdrop:~>gdb bad core
...
Core was generated by `./bad'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/ld-linux.so.2
#0  0x80483ed in main ()
(gdb) bt
#0  0x80483ed in main ()
#1  0x4003df3c in __libc_start_main () from /lib/libc.so.6
(gdb) exit
joey@gumdrop:~>gcc -g bad.c -o bad
joey@gumdrop:~>gdb bad core       
...

warning: exec file is newer than core file.
Core was generated by `./bad'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
#0  0x80483ed in main () at bad.c:5
5               p[x]=x;
(gdb) bt
#0  0x80483ed in main () at bad.c:5
#1  0x4003df3c in __libc_start_main () from /lib/libc.so.6
(gdb) joey@gumdrop:~>

So either I got lucky, or gdb can use the -g - built binary even with a core
file from a version that was not built with -g, and get proper stack tracing
and so on. Hmmm.

-- 
see shy jo



Reply to: