在不设置断点的情况下调试Visual Studio 2010中的所有事件

Yin*_*han 25 c# debugging breakpoints

我正在尝试调试具有大量事件的Windows窗体应用程序:按钮按钮,计时器等.

有没有办法在不设置断点的情况下捕获应用程序正在执行的每一行代码?

编辑:程序不是我写的,所以我不熟悉代码.我希望逐步完成整个程序,捕获正在执行的每一行代码.在每个事件中设置断点是不切实际的,因为动态创建了各种控件.

Aus*_*nen 14

要调试按钮单击而不设置断点:

  1. 使用调试器启动应用程序.
  2. 在预期点击之前到达状态.
  3. 返回调试器并按Pause然后按F11(Step Into) - 什么都不会发生.
  4. 转到应用程序并按下按钮 - 调试器应接管并将您放入事件处理程序.

注意:如果处理Paint,任何Mouse事件或可能的某些其他事件,这将不起作用.每次尝试上述步骤时,调试器都会将您放入这些处理程序中.


Iga*_*nik 11

如果您使用的是Visual Studio 2010的Ultimate版本,则可以使用名为IntelliTrace(以前的历史调试程序)的新功能.这将允许您完全按照自己的意愿执行操作 - 能够查看在执行程序期间发生的所有方法调用和事件,并且您将能够跳回到您需要的事件.

要启用IntelliTrace,请转到Tools ? Options ? IntelliTrace并选中"启用IntelliTrace"复选框,然后选择以下两种模式之一:"仅事件"或"事件和调用信息",然后使用调试器运行应用程序(F5).

两种模式之间的区别在于后者使用分析器来收集所有运行时信息,因此您可以获得完整的调用堆栈,但是您将无法使用调试器的编辑和继续功能.

您可以在本系列文章中找到更多内容,当然还可以在MSDN上找到.


Jas*_*ans 9

您还可以尝试使用代码覆盖工具.

例如,如果你有ResharperdotCover,你可以运行你的应用程序(通过dotCover-> Cover Application ...菜单项),当应用程序完成时,dotCover将显示在VS IDE中运行的代码行以绿色突出显示它们.未运行的代码行以红色着色.

我不知道是否有其他工具可以做到这一点,但这是一个选择.


Kla*_*sen 0

并非如此,但您可以设置一个断点并单步执行 (F10/F11) 其余代码。