Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 调试-使用断点跳过代码_Visual Studio - Fatal编程技术网

Visual studio 调试-使用断点跳过代码

Visual studio 调试-使用断点跳过代码,visual-studio,Visual Studio,您知道如何单击断点上的黄色箭头并将其向下拖动以跳过代码行的执行吗?那么,是否可以创建一个“When-Hit”宏(或类似的东西)来跳过包含断点的行的执行 因此,与其像这样编写代码 if(!Debugging) Response.Redirect("LoginFail.aspx"); 我可以在Response.Redirect()行上设置一个断点,而“When Hit”将跳过它。我不知道如何使用断点执行此操作,但您可以使用编译器指令跳过代码 #if (DEBUG) //this code i

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

因此,与其像这样编写代码

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

我可以在
Response.Redirect()
行上设置一个断点,而“When Hit”将跳过它。

我不知道如何使用断点执行此操作,但您可以使用编译器指令跳过代码

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


请确保在生成属性中检查了调试常量。

我不知道如何执行此操作。但是,您可以设置断点的“命中时”选项来运行宏。编写一个宏来获取当前行,然后设置下一个调试器行应该不难。你可能会想看看这个方法

这样的宏应该可以做到这一点:

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

是的,您可以直接使用跟踪点进行此操作

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

  • 另请参见

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


    如果是这样的话,恐怕您只能选择编写自己的宏或等待VS拥有一个内置的等效宏。

    这可能是一个很好的复制!不幸的是,从Visual Studio 2012中删除了宏。
    Public Sub SkipNextLine()
        ActiveDocument().Selection.LineDown()
        DTE.ExecuteCommand("Debug.SetNextStatement")
    End Sub