Just-In-Time Debugging 

This topic applies to:

Visual Studio Edition

Visual Basic

C#

C++

J#

Express

No

No

No

No

Standard

Yes

Yes

Yes

Yes

Pro/Team

Yes

Yes

Yes

Yes

Just-In-Time debugging is a feature that launches the Visual Studio debugger automatically when a program, running outside Visual Studio, encounters a fatal error. Just-In-Time debugging allows you to examine the error before the application is terminated by the operating system. The Visual Studio debugger does not need to be running when the error occurs.

If an error occurs while Just-In-Time debugging is enabled, a dialog box opens, asking if you want to debug the program and which debugger you want to use.

If a program running as another user hits a fatal error, a security warning dialog box appears before the debugger starts. For more information, see Security Warning: Attaching to an Untrusted Process Can Be Dangerous.

You can enable Just-In-Time debugging from the Options dialog box. For more information, see How to: Enable/Disable Just-In-Time Debugging.

For Windows forms, you must also enable Just-In-Time debugging in the machine.config or application.exe.config file. For more information, see How to: Enable Just-In-Time Debugging for Windows Forms.

After Visual Studio is installed on a server, the default behavior when an unhandled exception occurs is to show an Exception dialog that requires user intervention to either start Just-In-Time debugging or ignore the exception. This may be undesirable for unattended operation. To configure the server to no longer show a dialog when an unhandled exception occurs (the default behavior prior to installing Visual Studio), use the registry editor to delete the following registry keys:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger

On a 64-bit operating system also delete the following registry keys:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger

NoteNote

Just-In-Time debugging will not work for managed code hosted in a native application, such as Visualizers.

NoteNote

After installing the .NET Framework on Windows Server 2003 or on Windows 2000 SP3 (or later), Just-In-Time debugging will not work on a process running in a limited user account in a Terminal Services session until the computer has been rebooted.

See Also

Reference

Just-In-Time, Debugging, Options Dialog Box
Security Warning: Attaching to an Untrusted Process Can Be Dangerous

Concepts

Debugger Security

Other Resources

Debugger Roadmap