gdb/2171: No backtrace generated on amd64
Sat Sep 16 00:08:00 GMT 2006

>Number:         2171
>Category:       gdb
>Synopsis:       No backtrace generated on amd64
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          support
>Submitter-Id:   net
>Arrival-Date:   Sat Sep 16 00:08:01 UTC 2006
>Release:        GNU gdb 6.5
Linux elpdat01 2.6.15-gentoo-r5 #4 SMP Fri Aug 11 21:15:18 MDT 2006 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ GNU/Linux
Reading specs from /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/specs
Configured with: /var/tmp/portage/gcc-3.4.6-r1/work/gcc-3.4.6/configure --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/3.4.6 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.6 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.6/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.6/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include/g++-v3 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --enable-multilib --disable-libgcj --enable-languages=c,c++,f77 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
Thread model: posix
gcc version 3.4.6 (Gentoo Hardened 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9)
This GDB was configured as "x86_64-pc-linux-gnu".
I've compiled an application (php) with debugging symbols, yet when I run it through gdb on an amd64 machine, I only get the memory addresses, no useful information.  I have verified that debugging symbols are in fact compiled into the binaries:

> # file /usr/lib64/php5/bin/php
> /usr/lib64/php5/bin/php: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.4.1, __not stripped__

And the coredump has debugging symbols in it:

> # strings core | grep zend
> zend_version
> zend_thread_safe
> zend_version
> (etc...)

Yet when I run the core through gdb this is what I get:

> # gdb php core
> GNU gdb 6.5
> This GDB was configured as "x86_64-pc-linux-gnu"...Using host libthread_db library "/lib/tls/".
> Core was generated by `php -e test.php'.
> Program terminated with signal 11, Segmentation fault.
> #0  0x00002aaaac8d1e44 in ?? ()
> (gdb) thread apply bt all
> (gdb) bt
> #0  0x00002aaaac8d1e44 in ?? ()
> #1  0x00000000559d27f0 in ?? ()
> #2  0x0000555555f73cb0 in ?? ()
> (etc...)

I can't get a useful backtrace from this in order to file a bug report with PHP.  PHP was configured with --enable-debug, and compiled with -g (also tried -g2 and -ggdb), and nothing has worked.
Consistent.  Run php via gdb, or run a php core file through gdb.
Yes please :)

More information about the Gdb-prs mailing list