Coredump in Multithreaded application in Linux
I am working on multithreaded application. When ever process dumps it showing like this. I am not able to Analyze the core. I want to know whether there is any problem while linking with the libraries? Kindly suggest how to get more information about my core dump.
Libs:
##################################################
GNU gdb Red Hat Linux (6.5-25.el5rh)
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 "x86_64-redhat-linux-gnu"...(no debugging symbols found)
Using host libthread_db library "/lib64/libthread_db.so.1".
Reading symbols from /lib64/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libdl.s开发者_StackOverflow社区o.2
Reading symbols from /usr/lib64/libz.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libz.so.1
Reading symbols from /lib64/libpam.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib64/libpam.so.0
Reading symbols from /lib64/libssl.so.6...
(no debugging symbols found)...done.
Loaded symbols for /lib64/libssl.so.6
Reading symbols from /lib64/libpthread.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib64/libpthread.so.0
Reading symbols from /lib64/libresolv.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libresolv.so.2
Reading symbols from /lib64/libnsl.so.1...
(no debugging symbols found)...done.
Loaded symbols for /lib64/libnsl.so.1
Reading symbols from /lib64/libm.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib64/libm.so.6
Reading symbols from /lib64/libcrypto.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib64/libcrypto.so.6
Reading symbols from /usr/lib64/libxml2.so.2...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libxml2.so.2
Reading symbols from /usr/lib64/libstdc++.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libstdc++.so.6
Reading symbols from /lib64/libgcc_s.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libgcc_s.so.1
Reading symbols from /lib64/libc.so.6...
(no debugging symbols found)...done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /lib64/libaudit.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib64/libaudit.so.0
Reading symbols from /usr/lib64/libgssapi_krb5.so.2...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libgssapi_krb5.so.2
Reading symbols from /usr/lib64/libkrb5.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libkrb5.so.3
Reading symbols from /lib64/libcom_err.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libcom_err.so.2
Reading symbols from /usr/lib64/libk5crypto.so.3...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libk5crypto.so.3
Reading symbols from /usr/lib64/libkrb5support.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libkrb5support.so.0
Reading symbols from /lib64/libkeyutils.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libkeyutils.so.1
Reading symbols from /lib64/libselinux.so.1...
(no debugging symbols found)...done.
Loaded symbols for /lib64/libselinux.so.1
Reading symbols from /lib64/libsepol.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libsepol.so.1
Reading symbols from /lib64/libnss_files.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libnss_files.so.2
Reading symbols from /lib64/libnss_dns.so.2...
(no debugging symbols found)...done.
Loaded symbols for /lib64/libnss_dns.so.2
Backtrace
Core was generated by `requestprocess' '.
Program terminated with signal 11, Segmentation fault.
#0 0x000000000042be71 in std::string::operator= ()
(gdb) where
#0 0x000000000042be71 in std::string::operator= ()
#1 0x000000000042c559 in std::string::operator= ()
#2 0x000000000044e6df in std::ostream::operator<< ()
#3 0x000000000046f64f in std::string::substr ()
#4 0x000000000043065e in std::string::operator= ()
#5 0x0000003d2d2062e7 in start_thread () from /lib64/libpthread.so.0
#6 0x0000003d2c6ce3bd in clone () from /lib64/libc.so.6
(gdb)
info threads
and try not to analyse coredumps with gdb, but start your application under gdb:
gdb --args your_application with_arguments
then
run
By default backtrace will only print the stack of current active thread, to get the backtrace of all your threads do ,
threads apply all backtrace
Then you can switch to the right thread and analyze its frames further.
On Redhat-like systems (where software is installed with the rpm
tool), you can try this:
rpm -qf file
to find out which package installed a file. In your case,
rpm -qf /usr/lib64/libstdc++.so.6
In my case, this returned libstdc++-4.1.2_20070115-0.21
. Now you need to install the debug symbols which are in the package libstdc++-debug-4.1.2_20070115-0.21
. Put the install DVD into the DVD drive or download the package and install it to get the debug symbols.
If you have openSUSE, you can use zypper search pattern
to search for a package with "pattern" it its name.
Repeat for the other libraries.
精彩评论