如何完全禁用VS的即时调试?

时间:2012-02-13 20:28:00

标签: visual-studio-2010 debugging windows-xp fortran

为什么我要这样做?

首先,我从不使用它 - 饶了我,这听起来很无知,但我并不感兴趣。我的调试归结为 print if 语句。我已经这样做了一段时间,并没有兴趣改变它的工作方式。

其次,许多直到Visual Studio安装工作的程序突然停止工作,就像Just-In-Time调试开始启动一样。

第三,它附着了第二个屏幕,它会破坏我的一些旧程序(不是我自己的程序,而是我使用的程序)。不知道为什么会这样。

有没有办法完全关闭它?

我在Visual Studio的选项中禁用了它,但它仍然出现错误

未处理的win32异常...即时调试此异常失败,并显示以下错误:未安装的调试器启用了即时调试。在Visual Studio中,可以从...

启用实时

检查文档索引...

(所以一般来说,它告诉我它没有打开)

如何在不卸载Visual Studio的情况下完全禁用它?

2 个答案:

答案 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