如何从gdb的backtrace中提到的地址进行调试

时间:2015-10-12 07:23:29

标签: c++ gdb

Program terminated with signal 11, Segmentation fault.
#0  0x00007f0412571733 in boost::detail::interruption_checker::~interruption_checker() ()
from /opt/HYDRAstor/objectStorage/lib/release_prod_64/libXyzService.so
Missing separate debuginfos, use: debuginfo-install python-2.6.6-52.x86_64
(gdb) where
#0  0x00007f0412571733 in boost::detail::interruption_checker::~interruption_checker() ()

from /opt/HYDRAstor/objectStorage/lib/release_prod_64/libXyzService.so
#1  0x00007f041181547a in boost::this_thread::sleep(boost::posix_time::ptime const&) () from /usr/lib64/libboost_thread-mt.so.1.41.0

#2  0x00007f040c5ea36c in void boost::this_thread::sleep<boost::posix_time::seconds>(boost::posix_time::seconds const&) ()
from /opt/HYDRAstor/objectStorage/lib/release_prod_64/libAbcLib.so

#3  0x00007f040c5daf63 in healthMonitoring::healthMonitoringController::print(bool) ()
from /opt/HYDRAstor/objectStorage/lib/release_prod_64/libAbcLib.so

#4  0x00007f0411813d10 in thread_proxy () from /usr/lib64/libboost_thread-mt.so.1.41.0

#5  0x000000365d6079d1 in start_thread () from /lib64/libpthread.so.0

#6  0x000000365cee88fd in clone () from /lib64/libc.so.6

(gdb)

从这个回溯中可以看出,加载的共享库libXyz.so引发了seg错误。那么如何从这个共享库的代码中知道这个seg错误呢?

每帧开头提到的地址有什么用处。 如果需要更多细节,请告诉我。

1 个答案:

答案 0 :(得分:0)

  

那么我怎么知道这个共享库的代码中的哪一点呢   seg故障被提出了?

尝试从头开始重建所有内容,并禁用优化(使用-O0-Og)并启用调试信息(-g)。并确保您没有剥离生成的二进制文件(不在它们上运行strip)。

这应该为您提供更有意义的堆栈跟踪,包括行号和文件名。