From: Alexander Skwar (no email)
Date: Wed Jun 20 2007 - 10:04:32 EDT
Victor Duchovni <> wrote:
> This integration of gdb is incomplete, gdb detects a hangup before it
> can get any work done. It needs to be tweaked to actually get a stack
> trace.
All right. Could you please be so kind and tell me how to
make the integration complete?
In my main.cf, I've got now what I found on http://www.postfix.org/DEBUG_README.html#gdb :
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont; echo
where; sleep 8640000) | gdb $daemon_directory/$process_name
$process_id 2>&1
>$config_directory/$process_name.$process_id.log & sleep 5
I now get such a file created:
,----[ /etc/postfix/smtpd.18830.log ]
| GNU gdb 6.6
| Copyright (C) 2006 Free Software Foundation, Inc.
| GDB is free software, covered by the GNU General Public License, and you are
| welcome to change it and/or distribute copies of it under certain conditions.
| Type "show copying" to see the conditions.
| There is absolutely no warranty for GDB. Type "show warranty" for details.
| This GDB was configured as "i686-pc-linux-gnu"...
| Using host libthread_db library "/lib/libthread_db.so.1".
| Attaching to program: /usr/lib/postfix/smtpd, process 18830
| 0xffffe410 in __kernel_vsyscall ()
| (gdb) Continuing.
| (gdb) #0 0xffffe410 in __kernel_vsyscall ()
| #1 0xb793d953 in ?? ()
| #2 0xb79ede6c in ?? ()
| #3 0xb78e449b in ?? ()
| #4 0x0000498f in ?? ()
| #5 0xbf85941c in ?? ()
| #6 0x00000000 in ?? ()
| (gdb)
`----
I think the difference is, that I, originally, did not have the
"sleep 8640000" in the debugger_command.
But that's still not very helpful, is it? I guess I should compile
some more libs without having them being stripped, and also with
-ggdb3? But what lib might of interest here?
,----[ ldd /usr/lib/postfix/smtpd ]
| linux-gate.so.1 => (0xffffe000)
| libpcre.so.0 => /usr/lib/libpcre.so.0 (0xb7f80000)
| libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7f53000)
| libpthread.so.0 => /lib/libpthread.so.0 (0xb7f3c000)
| libpam.so.0 => /lib/libpam.so.0 (0xb7f2f000)
| libmysqlclient.so.15 => /usr/lib/libmysqlclient.so.15 (0xb7dc7000)
| libm.so.6 => /lib/libm.so.6 (0xb7da0000)
| libz.so.1 => /lib/libz.so.1 (0xb7d8b000)
| libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0xb7d44000)
| libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0xb7bcc000)
| libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb7bb0000)
| libdb-4.5.so => /usr/lib/libdb-4.5.so (0xb7a69000)
| libnsl.so.1 => /lib/libnsl.so.1 (0xb7a50000)
| libresolv.so.2 => /lib/libresolv.so.2 (0xb7a3c000)
| libc.so.6 => /lib/libc.so.6 (0xb78f6000)
| /lib/ld-linux.so.2 (0xb7fb5000)
| libdl.so.2 => /lib/libdl.so.2 (0xb78f2000)
`----
Cheers,
Alexander Skwar
|
|
|