调试 - 用断点跳过代码

问题描述:

您知道如何单击断点上的黄色箭头并将其向下拖动以跳过执行代码行吗?那么,是否可以创建一个“When Hit”宏(或类似的东西)来跳过包含断点的行的执行?调试 - 用断点跳过代码

因此,而不是写代码就像

if(!Debugging) 
    Response.Redirect("LoginFail.aspx"); 

我可以坐在Response.Redirect()线断点和“当打”会跳过它。

+0

可能的重复[可以在VisualStudio中有跳过行的命中点吗?](http://*.com/questions/455290/can-i-have-a-hit-point-in-visualstudio-那个跳过线) – heavyd 2011-03-24 19:45:44

我不知道这样做的烘烤方式。但是,您可以设置断点的“何时命中”选项来运行宏。编写一个获取当前行的宏并设置下一个调试器行应该不难。你可能会想看看Debugger.SetNextStatement方法。

像这样的宏应该这样做:

Public Sub SkipNextLine() 
    ActiveDocument().Selection.LineDown() 
    DTE.ExecuteCommand("Debug.SetNextStatement") 
End Sub 
+1

这太棒了!不幸的是,从Visual Studio 2012中删除了宏。 – 2014-10-22 10:08:31

有没有办法,我知道有一个断点要做到这一点,但你可以使用编译器指令来跳过代码

#if (DEBUG) 
//this code is skipped in debug mode 
#endif 

尝试:

#if DEBUG 
Response.Redirect("LoginFail.aspx"); 
#endif 

确保您有DEBUG常数检查你的构建属性。

是的,你可以做到这一点,直接使用跟踪点。

  1. 在函数底部找到返回语句或最终关闭大括号的地址,方法是打开一次,然后在寄存器窗口中查看EIP寄存器,或者添加Watch的“@eip ”。
  2. 将追踪点添加到要跳转的线上。请记住,跳转将发生在执行任何行之前。跟踪点的含量应{@eip = address}使用该地址从步骤1

https://*.com/a/14695736/301729

查看与使用编译器指令或任何其它需要在代码中添加逻辑的同意。但是,也理解编辑调试代码并不总是一种选择(例如,不拥有代码可能意味着没有构建它所需的全部资源)。

如果这是你的情况,恐怕写你自己的宏或等待VS有一个内置的等价物是你唯一的选择。