如何完全禁用VS的即时调试?
Posted
技术标签:
【中文标题】如何完全禁用VS的即时调试?【英文标题】:How to disable VS's just-in-time debugging completely? 【发布时间】:2012-03-05 06:26:00 【问题描述】:我为什么要这样做?
首先,我从不使用它——饶了我吧,这听起来很无知,但我不感兴趣。我的调试归结为 print 和 if 语句。我这样做已经有一段时间了,对改变它的工作方式没有兴趣。
其次,很多程序在安装 Visual Studio 之前都可以正常工作,而在实时调试开始时,它突然停止工作。
第三,它使我的一些旧程序(不是我自己的,而是我使用的程序)在连接第二个屏幕的地方崩溃。不知道为什么会这样。
有没有办法完全关闭它?
我已在 Visual Studio 的选项中禁用它,但它仍然出现错误
未处理的 win32 异常...即时调试此异常失败并出现以下错误:没有安装的调试器启用即时调试。在 Visual Studio 中,可以从 ...
启用 Just-In-Time检查文档索引以获取 ...
(所以一般来说,它告诉我它没有打开)
如何在不卸载 Visual Studio 的情况下完全禁用它?
【问题讨论】:
更改 AeDebug 注册表项。 查看这里***.com/a/21980503/314373 【参考方案1】:这样做的方法是从菜单中选择“调试”>“不调试就开始(Ctrl+F5)”,而不是“调试”>“开始(F5)”。
执行此操作时,您可能还希望在发布模式下构建代码 - 因为如果您不打算调试它们,调试构建对您没有任何好处。
【讨论】:
我在“从 VS 内部”调试时没有问题,但是在运行程序时甚至没有运行 VS。然后程序往往会崩溃,并且即时启动。我自己的程序需要VS,但我不希望其他程序因此而崩溃。在同一台机器上(有两个相同的用于测试目的),没有安装 VS,一切运行良好......【参考方案2】:Windows 程序启动调试器的问题实际上并不是 Visual Studio 中的更改之一,而是受到控制 JIT 的 Windows 更改的影响。您可以在发布模式下构建所有代码,但通常只需要没有调试弹出窗口。这在这篇文章http://msdn.microsoft.com/en-us/library/k8kf6y2a(v=vs.80).aspx中有描述。
你需要发出命令:
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting" /f /v "Disabled" /t REG_DWORD /d 00000001
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting" /f /v "DontShowUI" /t REG_DWORD /d 00000001
此时您可以在不调用调试器的情况下运行程序。我在批处理文件中执行此操作:
for /f "delims=" %%a in ('where reg 2^>nul') do @set theValue=%%a
if NOT "%theValue%."=="." GOTO :HaveReg
:: Might not have where - check again
for /f "delims=" %%a in ('reg /? 2^>nul') do @set theValue=%%a
if NOT "%theValue%."=="." GOTO :HaveReg
echo Unable to change registry keys to turn off program pop-ups
GOTO :DoneRegCheck
:HaveReg
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting" /f /v "Disabled" /t REG_DWORD /d 00000001
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting" /f /v "DontShowUI" /t REG_DWORD /d 00000001
:DoneRegCheck
【讨论】:
以上是关于如何完全禁用VS的即时调试?的主要内容,如果未能解决你的问题,请参考以下文章