好的,所以周围有很多问题,要求提供“Linux上的Visual Studio等效”或这个问题的变体。 (here,here,here,...)
我想关注一个方面并询问调试工作流程在不同系统上可能有何不同,特别是Visual Studio(类似)系统使用的完全集成的IDE方法,以及可能更多“独立”的工具链导向方法。
为此,让我提出我认为对“Visual Studio调试工作流程”的简短描述:
F9
F5
,它自动编译我的可执行文件,在调试器下启动它,然后我等到prg停在(a),同时监视跟踪窗口输出(b)加/减某些功能,这也是我在Linux下的Eclipse / CDT所期望的。 在使用VIM,Emacs,gdb / DDD等进行开发时,如何检索此工作流程和显示的信息?
这个问题实际上并不是关于某个工具是否具有某个功能,而是关于看到开发/调试工作是使用功能组合,并且触手可及的多个选项以及如何您在not using完全集成的IDE时访问此信息。
答案 0 :(得分:2)
我认为您的答案不仅仅是您使用的软件,还包括您使用的方法。我使用Emacs并依赖于TDD进行大部分调试。当我看到一些失败的东西时,我通常会写一些测试填补我(显然)错过的空白,并检查每一个期望。所以每次我使用调试器时它都会很远。
当我遇到问题时,我有几种选择。在某些情况下,我首先使用valgrind,它可以立即告诉我是否存在一些与内存相关的问题,从而无需使用调试器。它将直接指向我覆盖或删除应该保留的内存的行。如果我怀疑valgrind的竞争条件非常好。
当我使用调试器时,我经常在emacs中通过GUD模式使用它。它将为我提供堆栈,局部变量,源代码,断点和我可以命令调试器的窗口的视图。它通常涉及设置几个断点,观察一些内存或一些评估,以及单步执行代码。这非常类似于在IDE中使用调试器。 GDB调试器是一个强大的野兽,但我的问题从来没有大到足以需要调用它的力量。