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