在Linux中调试应用程序

时间:2008-11-26 09:16:32

标签: c++ linux debugging gdb

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

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

我尝试使用gdb

gdb GUI

但我怎样才能附上图书馆?

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

5 个答案:

答案 0 :(得分:7)

gdb会在调用库时自动调试库中的函数。只是称之为

gdb ./foo
run

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

答案 1 :(得分:5)

如果要调试库代码本身,则需要使用-g编译器标志构建库(以及使用-g构建可执行文件为litb pointed out) 。否则gdb会逐步完成您的代码,但每次进行库调用时都会抛出它。

答案 2 :(得分:2)

您可以尝试KDbgDDD - 数据显示调试器,Code::Blocks

Ulike DDD,其他是集成了调试器的IDE,但核心调试器[gdb]在这些IDE中保持不变。唯一的事情就是你将获得GUI中调试器视图的oragnized视图。

还可以尝试Eclipse + CDT插件。它也很好。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

您也可以使用Kdbg或ddd