您是否有过这样的经历:应用程序中的断点会导致调试中断,因为您可能需要测试已更新的代码,或者专注于不需要这些中断条件的另一个区域? 对于这些场景,您将被迫删除或禁用断点,或者一直按“继续”键,直到到达所需的代码行。
从 Visual Studio 2022 预览2开始,对于这些场景,你可以使用“Force Run To Cursor(强制运行到光标)”。 它类似于“Run To Cursor(运行到光标)”,但您可以保留断点,调试器将跳过它们,直到到达带有光标的代码行。 它还将跳过任何可能发生的第一次异常中断条件。
跳过所有断点,更快地调试应用程序
要直接运行到光标位置,在源代码或“Call Stack(调用堆栈)”窗口中,选择要中断的行,右键单击并选择“Force Run to Cursor”。
应用程序将附加 Visual Studio 调试器并在光标位置暂停,在执行过程中遇到的任何断点和第一次异常都将暂时禁用。 我们可以评估程序在那个点的状态。 一旦“Force Run To Cursor”被执行,断点和异常就会恢复到原来的状态。
这里是一个简单的例子,“Force Run To Cursor”将继续执行,并在我们执行 Force 的第8行中断。CreateMessage()和 SendMessage()方法中的断点将被跳过。
指向并单击强制运行光标
在活动调试会话中,当您的鼠标悬停并按住 Shift 键时,代码行旁边会出现一个带有工具提示“Force run execution to here”的绿色符号。
继续上面的例子,这里我们使用绿色符号按钮执行“Force Run To Cursor”。
特别注意
要在“Force Run To Cursor”时暂停,您的代码行必须是可访问的。 换句话说,这一行应该属于应用程序运行时调用的 condition/function/action。
如果在到达该行之前发生了未处理的异常,程序也可以更快地停止。
你也可以退出“Force Run To Cursor”模式,当你:
-
-
-
停止调试
-
重新启用后遇到异常
-
选择全部中断(即,选择工具栏上的暂停按钮)
-
命中一个新的断点
-
在重新启用现有断点后,命中断点
-
-
结语
当您想要跳过断点时,“Force Run To Cursor”提供了一种方便的调试应用程序的方法。 现在就下载 Visual Studio Preview 2 试试吧。
原文链接
https://devblogs.microsoft.com/visualstudio/debug-with-force-run-to-cursor/