65.9K
CodeProject 正在变化。 阅读更多。
Home

使用断点/跟踪点帮助调试(第 2 部分)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.90/5 (6投票s)

2013年11月18日

CPOL

6分钟阅读

viewsIcon

16335

使用断点/跟踪点帮助调试(第 2 部分)

阅读第 1 部分:通过使用调用堆栈和即时窗口帮助调试
在本帖中,我将讨论“断点”,这是开发人员在调试应用程序时最常用的功能之一,可以在运行时在特定点中断程序的执行。我将描述 Visual Studio 为断点提供的功能以及它如何有助于轻松调试代码。

什么是断点?
断点是 Microsoft Visual Studio 提供的功能,允许在调试应用程序时在运行时中断代码的执行。

例如

当您在 Visual Studio 的代码旁边单击时,它会在您的代码中设置断点,如上图所示。因此,当您开始执行代码时,它将在该点中断执行。

断点菜单(中断选项)



上图显示了断点的上下文菜单,即断点菜单。以下逐一描述所有选项。
  1. 删除断点
  2. 断点菜单的此选项允许移除断点。
  3. 禁用断点
  4. 断点菜单的此选项允许禁用断点,因此断点会被禁用并变为灰色。当开发人员只想在不停止断点的情况下执行代码,并在以后需要时重新启用时很有用。
  5. 位置…
  6. 此菜单选项允许在给定位置设置断点,即在源文件中的给定行。



    单击菜单后,会显示一个对话框,其中提供有关源文件、代码中的行号和字符的信息。此对话框允许更改行和字符信息。

    例如


    在对话框中将行号更改为 26,则断点将更改为行号 26。



  7. 条件…
  8. 单击此选项后,将显示以下对话框,其中包含两个选项。
    • (A)。  为 true
    • 此选项允许为断点设置条件,因此在调试过程中,执行会在断点处停止,即当条件满足时,断点会被命中。

      例如


      如上图所示,设置的条件是“i==1000”,这意味着当此条件为真(即满足)时,此断点将被命中。

      这对于在应用程序满足特定条件时停止执行非常有用,尤其是在示例循环中包含大量元素并希望在给定位置停止时。

      设置条件后,断点将显示如下。



      断点更改为带有 + 号的读取图标。当鼠标悬停在断点上时,Visual Studio 会在工具提示中显示与断点和条件相关的信息。
    • (B)。  已更改
    • 当变量或对象发生更改时,此选项允许在断点处中断代码的执行。

      例如


      此处在对话框中输入了变量“i”,即如果变量“i”的值发生更改,则程序执行将在断点处停止。

      下图显示了设置条件后断点上的工具提示。



      使用此选项时,断点上下文菜单中的条件选项将如以下图像所示被勾选。


  9. 命中次数…
  10. 此选项显示程序执行过程中断点被命中的次数。



    此对话框有三个选项,允许设置命中次数,如果命中次数匹配,则程序执行将在断点处停止。每个选项都是不言而喻的,您可以在下图中看到。



  11. 筛选…
  12. 此选项允许设置与“机器名和进程”相关的条件,根据该条件断点将被命中。下图对此进行了更详细的说明。



  13. 命中时…
  14. 此选项允许设置当程序执行通过断点时在输出窗口中打印的消息。

    此选项将断点转换为跟踪点,即开发人员可以通过在代码执行到跟踪点时在输出窗口中打印消息来跟踪重要变量或内容。

    例如


    如上图所示,为了读取变量的值,开发人员创建了一条消息,该消息将在每次执行 for 循环中的代码时打印到输出窗口。

    您可以阅读对话框中的文本,其中还提供了有关如何在文本框中提供信息以便将其打印到输出窗口的信息。

    开发人员通过设置跟踪消息按“确定”后,断点将如以下窗口中的方块所示。



    因此,当该程序在 Visual Studio 中执行时,消息将如以下图像所示打印到输出窗口。



  1. 编辑标签…
  2. 此选项允许为您的断点设置标签。因此,它会显示类似的对话框。



    这对于开发人员从 Visual Studio 导出断点很有帮助,可以通过标签记住断点的重要性,通过使用相同的名称创建有用的断点等。
  3. 导出…
  4. 此选项允许导出开发人员设置的断点。



    导出的断点信息将保存为“XML”,如上图所示。断点的导出 XML 文件如下所示



    当开发人员想要导出断点并将其保存为 XML 然后移除它时,此选项很有用。当需要相同的断点时,他/她可以通过 Visual Studio 的 Debug 窗口加载 XML 文件来加载相同的断点。
断点窗口
开发人员在代码中设置的断点/跟踪点将由此窗口显示。此窗口还显示带有其他信息的断点。

以下是启动断点窗口的方法。



因此,您可以从“Debug”菜单启动断点窗口,或者使用快捷键 Ctrl+D,B。

以下是断点窗口的图像。



此窗口还有一个工具栏,允许进行以下操作,这些操作也由上面讨论的断点菜单支持。
  1. 设置新断点
  2. 移除断点
  3. 删除所有断点
  4. 此选项允许删除在断点网格中选定的所有断点。
  5. 启用/禁用断点
  6. 导出断点
  7. 导入断点
  8. 此选项不属于断点菜单;它用于导入断点/跟踪点。



    当开发人员单击此按钮时,Visual Studio 会打开文件浏览器窗口以浏览断点/跟踪点的 XML 文件。



    因此,在加载此文件后,断点/跟踪点将重新在代码中设置。


  9. 转到源代码
  10. 转到反汇编
  11. Columns
  12. 此工具菜单允许设置以下网格中的列数,即断点窗口工具栏下方的网格。



  13. 搜索
  14. 搜索允许在断点窗口的断点网格中搜索断点。下图为此。根据指定的标准,断点网格窗口显示搜索到的断点。




断点网格

此网格窗口显示开发人员在源代码中设置的所有断点。此网格根据开发人员在网格中设置的列提供有关每个断点的信息。



结论

断点/跟踪点是 Visual Studio 提供的非常有用的功能,在调试大量代码时非常有用。Visual Studio 提供了在调试断点期间中断代码执行的灵活性,这对开发人员非常有帮助。
© . All rights reserved.