我想在Linux中调试应用程序。 该应用程序是用C ++创建的。 GUI使用QT创建。 GUI与静态库链接,可以将其视为应用程序的后端。
我想调试静态库但不知道该怎么做。
我尝试使用gdb
gdb GUI
但我怎样才能附上图书馆?
有没有人有过在linux中调试库的经验?
答案 0 :(得分:7)
gdb会在调用库时自动调试库中的函数。只是称之为
gdb ./foo
run
:)。确保使用调试标志构建foo(-g3
将启用gcc :)的所有调试内容。调试时不应优化(最多将-O1
传递给gcc,不要进一步优化)。它可能会混淆调试器。
答案 1 :(得分:5)
如果要调试库代码本身,则需要使用-g
编译器标志构建库(以及使用-g
构建可执行文件为litb pointed out) 。否则gdb会逐步完成您的代码,但每次进行库调用时都会抛出它。
答案 2 :(得分:2)
您可以尝试KDbg,DDD - 数据显示调试器,Code::Blocks
Ulike DDD,其他是集成了调试器的IDE,但核心调试器[gdb]在这些IDE中保持不变。唯一的事情就是你将获得GUI中调试器视图的oragnized视图。
还可以尝试Eclipse + CDT插件。它也很好。
答案 3 :(得分:1)
一个鲜为人知的替代方案是gdbtui,它使用基于curses的界面。
答案 4 :(得分:0)
您也可以使用Kdbg或ddd