1

我想在 Linux 中调试应用程序。该应用程序是用 C++ 创建的。GUI 是使用 QT 创建的。GUI 与可被视为应用程序后端的静态库链接。

我想调试静态库,但不知道该怎么做。

我尝试使用 gdb

gdb GUI

但是我怎样才能附加图书馆呢?

有没有人有在 linux 中调试库的经验?

4

5 回答 5

7

gdb 将在调用库中的函数时自动调试它们。就这样称呼它

gdb ./foo
run

:) 。确保您使用调试标志构建 foo (-g3将为 gcc 启用所有调试内容 :)。调试时不应该优化(最多传递-O1给 gcc,不要进一步优化)。它可能会混淆调试器。

于 2008-11-26T09:23:49.277 回答
5

如果要调试库代码本身,则需要使用-g编译器标志构建库(以及使用 litb 指出的构建可执行-g文件。否则 gdb 将很好地单步执行您的代码,但每次您进行库调用时都会举手。

于 2008-11-26T10:35:19.897 回答
2

你可以试试KDbg , DDD - 数据显示调试器, Code::Blocks

与 DDD 不同,其他是集成了调试器的 IDE,但核心调试器 [gdb] 在这些 IDE 中保持不变。唯一的事情是您将在 GUI 中获得调试器视图的组织化视图。

也可以试试 Eclipse+CDT 插件。这也很好。

于 2008-11-26T10:18:53.267 回答
1

一个鲜为人知的替代方案是gdbtui,它使用基于 curses 的接口。

于 2008-11-26T11:28:40.537 回答
0

您也可以使用 Kdbg 或 ddd

于 2008-11-26T12:32:11.970 回答