为什么我要这样做?
首先,我从不使用它 - 饶了我,这听起来很无知,但我并不感兴趣。我的调试归结为 print 和 if 语句。我已经这样做了一段时间,并没有兴趣改变它的工作方式。
其次,许多直到Visual Studio安装工作的程序突然停止工作,就像Just-In-Time调试开始启动一样。
第三,它附着了第二个屏幕,它会破坏我的一些旧程序(不是我自己的程序,而是我使用的程序)。不知道为什么会这样。
有没有办法完全关闭它?
我在Visual Studio的选项中禁用了它,但它仍然出现错误
未处理的win32异常...即时调试此异常失败,并显示以下错误:未安装的调试器启用了即时调试。在Visual Studio中,可以从...
启用实时检查文档索引...
(所以一般来说,它告诉我它没有打开)
如何在不卸载Visual Studio的情况下完全禁用它?
答案 0 :(得分:0)
这样做的方法是选择Debug> “从菜单中启动而不调试(Ctrl + F5)”,而不是“Debug> Start(F5)”。
在执行此操作时,您可能还希望在发布模式下构建代码 - 因为如果您不打算调试它们,调试版本对您没有任何好处。
答案 1 :(得分:0)
启动调试器的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