【问题标题】:Debugging on Linux for Windows Developer在 Linux 上为 Windows 开发人员调试
【发布时间】:2009-04-14 12:33:46
【问题描述】:

我主要在 Windows 机器上完成了基本(新手级别)软件开发,但我一直有 MS Visual Studio 来帮助我逐步完成调试过程。

但是,现在看来我将使用 Linux,因此为了准备好进行跳转,我想确保我有一个工具/工具来帮助我逐步完成代码和调试。

不幸的是,当我口头询问人们如何在 Linux 上进行调试时,我通常会得到以下回答:“哦,我只是放了一堆打印语句。”我的天啊!你不会说,但是是的,这就是他们的答案。

由于它是在 Linux 上,并且将在 CentOS 32 位操作系统上使用 C++ 代码,我希望这是一个首选的开源解决方案。所以,我想我要求在 CentOS Linux 上为 C++ 代码提供首选的 OpenSource IDE。

感谢您的任何见解和建议。

【问题讨论】:

    标签: c++ linux debugging


    【解决方案1】:
    【解决方案2】:

    几年前,我从 VS 迁移到了 emacs/make 类型的环境,我从未回头。

    这个想法是使用makefile 来处理 IDE 的项目管理方面,我使用 emacs+gdb 进行编辑和调试。你需要一段时间来适应 emacs,但如果你坚持下去,那么努力是值得的。启动 emacs 后,按“Ctrl+H”,然后按“t”,这将带您进入教程页面。

    掌握了基础知识后,您可以使用与任何 IDE/调试器接口类似的方式来调试程序。我必须承认,即使经过了这么长时间,我仍然使用我第一次迁移到 emacs 时设置的一组 VS 键映射!

    (global-set-key [f7] 'compile)          ;; Run the compile command
    (global-set-key [f4] 'next-error)       ;; The next compile error
    (global-set-key [S-f4] 'previous-error) ;; The previous compile error
    (global-set-key [f5] 'gdb)              ;; Start the debugger
    

    以下将“VS”键映射设置为您可能使用的不同 GDB 命令:

    (add-hook 'gud-mode-hook
      '(lambda ()
         (define-key (current-local-map)
           [f10]
           'gud-next)
         (define-key (current-local-map)
           [f11]
           'gud-step)
         (define-key (current-local-map)
           [\S-f11]
           'gud-finish)
         (define-key (current-local-map)
           [f5]
           'gud-cont)
    ))
    

    使用上面的键盘映射,我按下“f5”,提示我运行 gdb(我在这个命令中添加了我想要调试的二进制文件)。加载 gdb 后,按“f5”继续,按“f10”跳过,按“f11”进入,按“衬衫+f11”退出。

    最后,每次启动“gdb”时,它都会在您的主目录中读取一个名为“.gdbinit”的文件。另一个 StackOverflow 问题有这个 answer 引起了我的注意 stl-viewsstl-views 是一组用于 gdb 的辅助函数,向您显示不同类型的 STL 容器的内容。如何使用它的说明可以在链接顶部找到。

    【讨论】:

      【解决方案3】:

      我建议使用Eclipse

      Eclipse 是一个成熟的 IDE,提供大量支持。

      如果你想尝试不同的东西,还有Code::Blocks

      【讨论】:

      • Code::Blocks 在内部也使用 GDB,我发现与 C::B 相比,单独使用 GDB 调试起来不那么痛苦。
      • 哇——没想到会有这么多精彩的反应。现在我必须找到时间并利用这个机会来试验所有这些想法。我可能会从 Eclipse 开始,看看我是否可以将现有的 Linux 代码库引入 IDE,这是以前从未做过的,并且有大量的文件和很少的现有或准确的文档 - 不幸的是没有 *.dsw 或现有工作区或解决方案:(我想下一步将看看如何让这个野兽在 IDE 中工作。再次感谢所有回复,他们真的很棒。
      【解决方案4】:
      • 日食
      • NetBeans
      • KDevelop

      【讨论】:

        【解决方案5】:

        总是有GDB。 XCode for OSX 在内部使用 GDB 进行调试。

        【讨论】:

          【解决方案6】:

          Valgrind,它是你的朋友,可以让你免于通过 GDB 受苦。

          【讨论】:

            【解决方案7】:

            大多数情况下,对于与 VS 类似 (?) 的 IDE - 使用 Eclipse

            请参阅 moving Microsoft VS projects to Eclipse C/C++ Development Toolkit - 将 Microsoft Visual Studio C/C++ (MSVC) 项目迁移到 Eclipse 的简要分步过程。它比较和对比了 MSVC 和 Eclipse CDT 的优势。

            【讨论】:

              【解决方案8】:

              Anjuta 是一个非常棒的 GNOME IDE。对于调试,它在内部使用 GDB。

              【讨论】:

                【解决方案9】:

                如果您只是想要一个好的调试器,请查看DDD

                【讨论】:

                  【解决方案10】:

                  在 linux 上调试时,我使用了 gdbcscope 的组合。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2014-12-18
                    • 2014-09-19
                    • 2014-04-15
                    • 2012-07-05
                    • 2011-01-10
                    • 1970-01-01
                    • 2018-03-17
                    • 1970-01-01
                    相关资源
                    最近更新 更多