我正在使用gdb来调试针对静态库编译的程序。库和程序都用调试符号编译。对于这个库,gdb 只看到在 .h 文件中实现的源代码,而没有看到在 .cpp 文件中实现的源代码。我想知道为什么?
.cpp文件。.cpp文件中实现的某些函数。例如,gdb理解以下命令:
(gdb)中断组织::Qhull::runQhull,
但是,不可能在该函数的正文中调试代码。(只有使用stepi命令在汇编程序级别上逐步完成单个指令是可能的。)另一方面,调试器能够看到在头文件中实现的函数代码。backtrace命令报告说,对于前面提到的runQhull函数,“没有可用的符号表”:
(gdb)在orgQhull::Qhull::runQhull(orgQhull::RboxPoints const&,const*) () ()中回溯跟踪完整#0 0x0000000000004d361a,没有符号表信息可用。#10x000000000049573a在ConvexHull::ConvexHull (this=0x7fffffffcb70,tree=.,begin=.,end=.)在/home/filip/fel/dp/sandbox/src/populating_octomap/include/ConvexHull.h:40这是什么原因?欢迎任何建议!
一些细节:
libqhullcpp.a,源代码位于git://gitorious.org/qhull/qhull.git发布于 2013-05-01 23:10:40
这是什么原因?
任一
-g标志的库,或者检查您的库构建日志。你相信你是用-g构建的,但你很可能错了。
https://stackoverflow.com/questions/16325562
复制相似问题