我继承了一个庞大、陈旧的代码库,而且我正在经历一种我从未见过的行为。有时,在调试时,如果我在 Watch 窗口中浏览对象或集合,调试器会挂起。它始终是相同的位置、相同的对象类型等。大约 15 秒后,Visual Studio 返回给我,但调试器不再工作,并且在我重新启动调试 session 之前不会工作。当我停止调试器时,我得到:
"Cannot detach from one or more processes: [6088] w3wp.exe:
All outstanding func-evals have not completed, detaching is not allowed
at this time."
而且我必须终止进程才能继续。
我已经阅读了足够多的关于这个问题的文章,可以从理论上推断它与线程有关,但这超出了我的理解范围。我想知道是否有人遇到过这种情况,如何找出具体问题,最重要的是如何预防。我什至会采取阻止调试器进入该分支的解决方案,以防止破坏我的调试器,因为这很烦人。
欢迎提出任何建议。由于工作需要,我无法分享太多代码。
最佳答案
这可能是由您尝试调用的代码中的无限递归/循环引起的,但您可以通过使用此处命名空间中的一些“调试器...”属性来绕过该问题:System.Diagnostics告诉调试器不要介入等等。
关于c# - Visual Studio 调试器挂起,无法从 w3wp 分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15226078/