这是一项功能.. 当您“全部中断”时,假定您的进程已挂起。您可能对这种情况感兴趣的第一件事是 - WHERE。因此,它会将您直接引导到正在执行的“当前”位置。 IIRC,这是所有低级调试器的事实标准。如果您不希望“未加载符号”,只需标记“显示反汇编”,它将永远不会再次弹出:)(当然,相反,您会看到确切的停止点。是的,这也是一个我自己用过很多次调试未知库代码的功能)
另一方面,如果您知道希望代码在哪里停止,请将断点放在那里。
另一方面(好像我们有三个),如果您想真正停止应用程序 - 停止它,不要中断,只是停止。
我感觉您的实际问题在于您以错误的方式使用其中一个功能,因此另一个功能会困扰您。请告诉我,您将“全部中断”用于什么以及它如何/为什么与您当前的文本编辑发生冲突。为什么你不能在这里停下来或休息一下呢?还是“分离”?
无论如何,我不得不承认,作为一项功能,应该有一些关闭它的选项,只是为了 IDE 的可配置性。
编辑
啊……你是对的。我完全忘记了光荣的编辑和继续。我不是在开玩笑/取笑,E&C 是一个很棒的功能,我希望所有其他平台都拥有。我已经忘记了,因为...我广泛使用 lambdas、泛型、foreachs 和其他有效阻止编辑和继续的功能。
无论如何,重点是,因为编辑并继续是您想使用的黄金功能 - 应用程序必须处于“中断”模式。但是,无论如何如何“中断”/“暂停”等,IDE 会假定 PAUSE 是您的目标,而不是编辑,因此它会显示您在哪里暂停了应用程序。
MSVS 中有一些选项,例如“仅显示我的代码”,可能会对您有所帮助,但不会解决问题:调试期间的编辑并继续是为“小型本地编辑”而设计的。比如if(x>0)throw new uncaught() 而不是if(x<0)throw new uncaught()。您的应用程序在断言或断点处停止并即将崩溃,首次更改异常处理程序已启动,这是您的机会!您展开崩溃处理程序,更正代码,然后运行。以 同一个方法 中的所有内容,你有 stop 发生在,作为即时补丁的一种方式..
这是为什么你不能在 E&C 会话期间添加方法、类、修改泛型等的主要问题之一:即。编辑您当前的 lambda 或当前 foreach 可能没问题,但 IDE 将无法重新定位流程并正确执行新代码。这有点类似于您有时会看到“陈旧代码”警告的原因,但是对于这些代码结构,分析起来更加困难,因此无法实现。并且可能永远不会在 MS 的 TO-DO 列表中名列前茅:/
.Net/C# 的当前繁荣不是“实时开发”而是“notaliveyet 开发”,它受到模块化和单元测试的大力支持,您可以在其中努力离线测试应用程序的大部分功能.. 但这是一种范式转变,对于小型项目或本地桌面开发,有时这简直是矫枉过正。