我很难找到导致给定副作用的陈述。我在每个班级成员中都设置了一个断点,但仍然无法在罪魁祸首线上暂停执行。
或
答案 0 :(得分:5)
您可以暂停执行,然后逐行开始跟踪(例如按F10)。这会给你在每一行打破的完全相同的效果。
编辑:如果您使用“trace into”(在默认设置中按F11),则不必在每个方法中放置断点。然后调试器将停止在被调用方法的第一行。
如果您在调试时遇到问题,可能在进行断点之前需要进行更多的静态分析...您能描述一下您试图追捕的副作用吗?也许人们可以就如何找到它或至少缩小搜索范围提出建议。
编辑2 :我认为您不会发现通过断点描述的副作用。加载已签名的程序集时,CLR将对签名代码进行验证。它必须访问网络才能更新撤销列表。
要解决此问题,您可以禁用CRL检查。以下是有关如何操作的一些信息: http://technet.microsoft.com/en-us/library/cc738754(WS.10).aspx
当然,您应该了解安全隐患(如果您正在运行 的代码的证书被撤销,该怎么办?)
答案 1 :(得分:3)
在代码的第一行执行断点(例如,如果您是控制台应用程序,则为主函数的第一行)。然后只需使用单步命令(默认情况下为F10和F11)来完成执行。
答案 2 :(得分:1)
这个很容易,但前提是你知道发生了什么。这是做什么的。
不要忘记ctrl-alt-E并在完成后取消选中!
答案 3 :(得分:1)
最简单的方法是使用调试器的内置Break All功能。它并不适用于所有情况,但如果适用于您的情况,则使用起来非常简单。调试>>全部中断(或 CTRL + ALT + 中断)
有关详细信息,请参阅此页面上标题为“使用断点或全部中断进入代码”的部分:Start, Break, Step, Run through Code, and Stop Debugging in Visual Studio
答案 4 :(得分:0)
您可以尝试使用F10踩过代码直到遇到问题,它会产生相同的结果。
答案 5 :(得分:-1)
我不确定我是否理解你的问题。 您可以使用一个断点然后按F10(跳过)或F11(步入)来执行下一条指令。这与在每条线上都有断点并在每次休息后击中F5(继续)相同。 或者你可以在罪魁祸首线上设置一个断点并调查callstack窗口以查看到那时为止的控制流程。