代码之家  ›  专栏  ›  技术社区  ›  Martin Ba

Visual Studio开发与“Linux”开发的调试工作流方面?

  •  0
  • Martin Ba  · 技术社区  · 15 年前

    好的,所以有很多问题围绕着你,问一个“visualstudio在Linux上的等价物”或者这个问题的一个变体。( here here here , ...)

    我想集中在一个方面,问一下 调试 工作流在不同的系统上可能有所不同,特别是visualstudio(like)系统使用的完全集成的IDE方法和一种可能更“独立”的面向工具链的方法。

    为此,让我简要介绍一下“Visual Studio调试工作流”:

    • 我打开这个项目(从用户的角度看,只需一步)
    • 我导航到要调试的代码(可能是通过搜索我的项目文件,只需打开 在文件中查找 对话框。)
    • F9
    • 我在第(b)行添加了一个断点,然后更改断点属性,这样调试器就不会停止,而是跟踪局部变量的值。
    • 我击中了 F5
    • 当调试器最终在(a)处停止时,我的屏幕会自动在(一次性预配置的窗口)中显示以下信息 同时并排 :
      • 当前调用堆栈
      • 最近更改的局部变量的值
      • 加载的模块(DLL)
      • 所有活动断点及其位置的列表
      • 显示当前寄存器值的小窗口

    加上/减去一些特性,这也是我在Linux下的Eclipse/CDT下所期望的。 在使用VIM、Emacs、gdb/DDD等进行开发时,如何检索此工作流和呈现的信息?

    这个问题并不是关于某个工具是否有一个特性,而是要看到开发/调试工作正在使用各种特性的组合,并且在您的指尖和屏幕上有许多可用的选项 您可以在 not using 一个完全集成的IDE。

    1 回复  |  直到 9 年前
        1
  •  2
  •   daramarak    15 年前

    我认为你的答案不仅仅是关于你使用哪种软件,还有你使用什么方法。我使用Emacs,大部分调试都依赖于TDD。当我看到某些东西失败时,我通常会编写测试来填补我(显然)错过的空白,并以这种方式检查每个期望值。所以每次我使用调试器时都会有很大的不同。

    当我遇到问题时,我有几种选择。在某些情况下,我首先使用valgrind,它可以立即告诉我是否有一些与内存相关的问题,从而消除了对调试器的需要。它将直接指向我重写或删除应该单独保留的内存的行。如果我怀疑一场比赛的情况下,瓦尔格林是相当不错的。

    当我使用调试器时,我经常在emacs中通过GUD模式正确地使用它。它将给我一个堆栈视图,局部变量,源代码,断点和一个窗口,我可以命令调试器。它通常包括设置几个断点,观察一些内存或一些计算,以及逐步遍历代码。这很像在IDE中使用调试器。GDB调试器是一个强大的野兽,但我的问题从来没有大到需要调用它的功能。