在 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 中调试应用程序的主要内容,如果未能解决你的问题,请参考以下文章
在 ubuntu linux 中调试 kivy 应用程序时出现问题,当我尝试调试应用程序时,它开始导入要求,然后显示错误并退出