coredump 文件获取共享库的行号

时间:2021-04-17 01:39:33

标签: c++ linux gdb coredump

我正在使用 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 在哪里可以找到源文件

1 个答案:

答案 0 :(得分:0)

对不起各位,我发现共享库没有用于调试的符号表,它的编译肯定有问题.....