在 Linux 中调试应用程序

Posted

技术标签:

【中文标题】在 Linux 中调试应用程序【英文标题】:Debugging an application in Linux 【发布时间】:2008-11-26 09:16:31 【问题描述】:

我想。 该应用程序是用 C++ 创建的。 GUI 是使用 QT 创建的。 GUI 与一个静态库链接,该库可被视为应用程序的后端。

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

我尝试使用 gdb

gdb GUI

但是我怎样才能附加库呢?

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

【问题讨论】:

【参考方案1】:

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

gdb ./foo
run

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

您可以尝试KDbg、DDD - 数据显示调试器、Code::Blocks

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

也可以试试 Eclipse+CDT 插件。也不错。

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

你也可以使用 Kdbg 或 ddd

【讨论】:

以上是关于在 Linux 中调试应用程序的主要内容,如果未能解决你的问题,请参考以下文章

linux禁止gdb调试

在 Linux 中调试 C++ 程序

Linux程序调试-常用调试技巧

在 ubuntu linux 中调试 kivy 应用程序时出现问题,当我尝试调试应用程序时,它开始导入要求,然后显示错误并退出

嵌入式arm linux环境中gdb+gdbserver调试

gdbserver远程调试嵌入式linux应用程序方法