有没有办法打破Visual Studio中执行的下一行代码?

mez*_*oid 33 debugging breakpoints visual-studio-2008

我正在尝试追踪当我点击aspx页面上的特定元素时发生的错误...

在过去,我必须追踪处理该特定事件的类,并在我认为应该被击中的线上设置一个断点.在我最终找到正确的类之前,通常需要多次尝试....特别是如果类是一个隐藏在某处的用户控件...

因此,我想知道是否有任何方法可以让Visual Studio在单击aspx页面上的元素(例如按钮)后执行的下一行代码中断.我知道有一种方法可以打破任何抛出的异常,所以我想也许有类似的东西可以帮助我.

如果这种功能不可能,也许有人可以建议一种更好的方法让我快速找到我想要调试的类......

Rya*_*ndy 30

您是否尝试过Debug> Break All("暂停")按钮?(Ctrl+ Break)

调试>全部中断

它通常会在堆栈中的某个地方打破,就像在WinForms应用程序中的主窗体的Show()一样,但是如果你然后单步进入它,它通常会很好地适用于这种事情.

  • 这是一个很好的答案,我不认为那些"显而易见"的东西.简单 - 全部中断,F11(步骤,通常在Application.Run行),单击表单上的按钮,在该位置进行代码分解.如果您正在进行某些事情,这将无法工作......例如WndProc覆盖等等,这些事情会触发消息泵.对于其他情况,这很好用,并且是一种简单的说法,"打破我做的下一个动作"(比如点击一个按钮!). (4认同)
  • 我不确定“全部中断”按钮正是我想要的,因为我认为代码将在单击屏幕后的几毫秒内执行,因此我无法足够快地暂停它。 (2认同)
  • 我再说一遍:你试过*吗?单击按钮后,不要尝试单击"全部中断".单击Break All*之前*单击按钮,然后单击Step Into,然后*然后*单击按钮. (2认同)
  • 更新:我提到如果你正在做一些事情,比如重写WndProc,捕获键盘事件等等,那么这个效果不好 - 解决方案是在你的方法中添加[DebuggerStepThrough]属性.这将绕过该方法,并允许您在完成break-all并按F11后进入"next"方法,但将绕过您不想调试的任何其他方法. (2认同)