调试时msvsmon.exe崩溃

60

当我在VS2013更新3中进行调试时,当命中断点时,msvsmon.exe崩溃。

它会显示"The debugger's worker process (msvsmon.exe) unexpectedly exited. Debugging will be aborted"。

我没有使用远程调试。

是否有可能关闭msvsmon.exe以避免在调试时调用它?

23个回答

63

删除所有断点可以解决我遇到的这个错误。禁用断点是不够的,必须将它们删除。

我能够多次附加到一个进程。一旦我添加了一个有几个检查条件的条件断点,当尝试重新附加到同一进程时,就会出现这个错误。

提供的问题错误是一个问题。我还收到了一个错误,指出调试器已经附加,当我再次尝试时。无论哪种方式,都是删除断点解决的。


我也遇到了在VS2015 Update 1中msvsmon.exe崩溃的情况。删除断点解决了本地和远程调试的问题。 - Grant
2
惊人的是,这有所帮助。有人知道是什么原因导致了问题吗? - Szybki
适用于我,VS 2017 15.3.3。 - vinibrsl
我没有设置断点,但是遇到了这个问题。使用的是VS 2017 15.5.4版本。 - ryanwebjackson
1
在使用VS2019时,删除所有断点对我没有起作用。我还不得不重新启动VS2019。 - Jan
显示剩余2条评论

27

尝试打开选项>调试>常规>"使用托管兼容模式"

我在调试时也遇到了这个错误/崩溃,并尝试检查其中包含50 MB文本数据的变量。这个选项在VS2013和VS2015中都起作用,可以让我调试并检查带有大型数据的变量。

需要启用的设置


1
这在我的Visual Studio 2017 15.9.18版本中有效。我还删除了所有保存的断点。 - Dai
谢谢!那太棒了!(对不起,我的荷兰语) - S.H.
很遗憾,在我的Visual Studio 2019中,对于一个大小为48 MB的JSON文档,它并没有起作用。无论我是否启用了“使用托管兼容模式”,都会崩溃并显示相同的错误消息,因此我认为这个选项增加了一个阈值,但并不能保证成功。不过还是感谢您的建议!我将不得不使用文档的较小子集进行调试。 - Michael M
你的回复给了我一个线索。我有一个指向非常大的类的变量。删除它解决了问题。当我尝试添加它回来时,问题又出现了。 - John Foll

13

以下是对我有效的一些方法:

  • 尝试关闭Visual Studio并重新启动。
  • 如果不行,重启一下电脑可能会有帮助(我知道这个建议很普通,但还是值得一试)。
  • 禁用不必要的断点。

7
移除断点并重新启动Visual Studio解决了我的问题。 - hdoghmen

12

我也遇到了这个错误,而且我也安装了Astrill。完全卸载Astrill解决了问题。

我联系了Astrill支持团队,他们在2小时内回复我了,说正确的解决方法是按住 Ctrl 键并在 Astrill 应用程序上点击“帮助”按钮,然后选择“卸载 LSP”。这样就可以修复问题,无需卸载 Astrill。

我不知道LSP是什么,但我认为它是某种代理。


3
希望我可以多次点赞这样的答案。不是那种愚蠢的猜测型回答,而是正确识别问题的人并且不止步于此,而是更进一步联系了Astrill。解决了我的问题,真棒。 - Matt

7
在我的情况下,这是由 VPN 软件引起的。它更改了我的 hosts 文件,因此我的 localhost 不再是 127.0.0.1。
所以请检查您在 hosts 文件中的 localhost(例如 %WINDIR%\System32\drivers\etc\hosts),确保它是 127.0.0.1。

我的主机文件看起来没问题,但是一旦我卸载了VPN软件,它就又开始工作了。 - odyth
1
事实上,在卸载了Astrill VPN软件之后,它又开始正常工作了。很奇怪。 - bweber
我没有使用VPN,但在编辑hosts文件后,问题消失了。谢谢。 127.0.0.1 localhost ::1 localhost - Piotr Knut
虽然有所改善,但仍然存在问题。我有时可以进行调试。 - Piotr Knut
安装了Microsoft .NET Core工具(预览版2)后,一切都正常工作。断点也能够正常工作。 - Piotr Knut
考虑到我的开发机器和环境,我几乎确定这是问题所在,但是按照提到的方法编辑了 hosts 文件,但调试仍然不成功。 - ryanwebjackson

5

我也曾遇到过这个问题,我的版本是Visual Studio 2015 RTM。删除所有断点可以解决 "调试器的工作进程(msvsmon.exe)意外退出。调试将被中止" 的错误。

所以,如果在您使用的版本中清除所有断点,则无需避免使用MSVSMON.exe。


对我有效的做法是1)删除所有断点2)运行一次exe 3)然后再添加几个断点。这对我起作用了。 - MAG

2
我遇到了同样的错误。删除所有断点并修复Visual Studio(我使用的是2013社区版)后没有任何效果。问题出在Bitdefender软件上。我安装了Bitdefender Internet Security 2016,并将“Active Thread Control”(模块->杀毒软件)设置为正常级别。但是,将此设置更改为“宽容”后,错误就不再显示了。

enter image description here


2

我正在使用OzCode调试器扩展。不幸的是,他们没有一种完全禁用扩展的方法 - 你只能禁用某些功能 - 所以我不得不完全卸载它来确认它是导致崩溃的原因。


@croswell 你好,我是OzCode的CTO - 非常感谢您告诉我们这个问题!我已经通过电子邮件跟进了您的错误报告,并提供了一个版本,应该(希望)修复了这个问题。 - Omer Raviv
是的,早期访问预览版本已经解决了这个问题。 - csrowell
@OmerRaviv 卸载了 OzCode,问题消失了。 - silkfire
@silkfire 很抱歉听到这个消息。为了修复问题,请下载 OzCode EAP 版本。有关此版本的更多详细信息,请参见此处 - Omer Raviv
现在我在EAP v4版本中遇到了同样的问题。花了一些时间才找到解决办法,但在找到这里之后,我禁用了OzCode,错误消失了。 - Przemek

1
我今天在我的VS2019项目中开始遇到这个确切的错误。尝试在VS调试器中展开/检查简单的数据结构会让它冻结一分钟,然后我会收到“调试器的工作进程(msvsmon.exe)意外退出。调试将被中止”消息:

enter image description here

如果我将 msvsmon.exe 进程添加到 Windows Defender 排除列表 中,问题就会消失。

那对我起作用了(VS2019 17.4)。 - ConfusedSushi

1
这里有另一个答案:我将我的项目从“平台目标:任何 CPU”改为“平台目标:x86”。从需要大约 5 次尝试进行调试到每次都有效果。
我之前尝试了这个帖子中的每个建议:重新安装、删除所有断点,并寻找可疑的软件相互作用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接