Hi, We are facing the problem that a post-mortem investigation of a multi-threaded program is not possible under RedHat Linux 7.1 (kernel version 2.4.2-2), because loading the core into gdb 5.0 does not show the correct crash location. Attached is a test program, linux.c. This is a producer-consumer program, with pairs of threads sending each other messages. Its structure is described in comments at the very beginning of source code. If 0 is typed as stdin, a divide-by-zero exception happens. If you use GDB to look into the core, you'll see it gets some errors while loading, and doesn't show the correct line which causes the arithmetic exception: rock[19] gdb yahuitest/p15 core GNU gdb 5.0rh-5 Red Hat Linux 7.1 Copyright 2001 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 "i386-redhat-linux"... Core was generated by `yahuitest/p15 100000'. Program terminated with signal 6, Aborted. Reading symbols from /lib/i686/libpthread.so.0...done. warning: Unable to set global thread event mask: generic error [New Thread 1024 (LWP 5458)] Error while reading shared library symbols: Can't attach LWP 5458: No such process ... Obviously, if one runs the program in the debugger, it shows the correct location. Another problem is that core is not always dumpable. I repeat running this program with 0.csh script as attached. You'll find it stops with no core dumped after few iterations. Does anyone know if this is a problem that we can work-around with the current versions of the kernel (eg. setting a signal handler, etc)? Do we need a newer version of GDB? Thanks. Yahui