我正在使用 gdb 来分析核心转储文件。可执行文件链接到共享库,可执行文件和共享库都使用 -g
标志编译,在 bt
中我可以看到可执行文件中的行 num,但看不到共享库。有什么想法可以解决这个问题吗?
我是这样打开核心文件的:
gdb /path/to/executable /path/to/core/file
(gdb) bt
#0 0x00007f4e7711b438 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1 0x00007f4e7711d03a in __GI_abort () at abort.c:89
#2 0x00007f4e7858b8b1 in std::pair<tsmap3::NearestPtResult, double> tsmap3::IndexTree::GetNearestPt2<tsmap3::LaneImpl>(tsmap3::Point3d const&, tsmap3::Point3d const&, double, std::function<tsmap3::NearestPtResult (tsmap3::Point3d const&, tsmap3::LaneImpl const*)>, std::function<bool (tsmap3::LaneImpl const*)>, std::unordered_set<unsigned long, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<unsigned long> >&) const () from /home/ziqi.liu/code/map-lane-map3/build/src/tsmap3.cpython-35m-x86_64-linux-gnu.so
#3 0x00007f4e784d93a0 in tsmap3::NearestPtResult tsmap3::GridSystem::GetNearestPt<tsmap3::LaneImpl>(tsmap3::Point3d const&, double, std::function<tsmap3::NearestPtResult (tsmap3::Point3d const&, tsmap3::LaneImpl const*)> const&, std::function<bool (tsmap3::LaneImpl const*)> const&) () from /home/ziqi.liu/code/map-lane-map3/build/src/tsmap3.cpython-35m-x86_64-linux-gnu.so
#4 0x00007f4e784bf201 in tsmap3::TSMapImpl::GetNearestRefPt(tsmap3::Point3d const&, double, std::vector<tsmap3::Lane::Property, std::allocator<tsmap3::Lane::Property> > const&, bool) const ()
from /home/ziqi.liu/code/map-lane-map3/build/src/tsmap3.cpython-35m-x86_64-linux-gnu.so
#5 0x00007f4e78537fb3 in tsmap3::TSMap::GetNearestRefPt(tsmap3::Point3d const&, double, std::vector<tsmap3::Lane::Property, std::allocator<tsmap3::Lane::Property> > const&, bool) const ()
from /home/ziqi.liu/code/map-lane-map3/build/src/tsmap3.cpython-35m-x86_64-linux-gnu.so
#6 0x00000000004230d2 in main (argc=<optimized out>, argv=<optimized out>) at /home/ziqi.liu/code/map-lane-map3/examples/bench_get_nearest_ref_pt.cpp:54
/home/ziqi.liu/code/map-lane-map3/build/src/tsmap3.cpython-35m-x86_64-linux-gnu.so
是共享库的 so 文件。
我确实有那个共享库的源文件,我想我需要以某种方式提示 gdb 在哪里可以找到源文件
答案 0 :(得分:0)
对不起各位,我发现共享库没有用于调试的符号表,它的编译肯定有问题.....