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

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

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

我尝试使用 gdb

gdb GUI

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

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

【问题讨论】:

    标签: c++ linux debugging gdb


    【解决方案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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-03-02
              • 2017-09-12
              相关资源
              最近更新 更多