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
Note |
---|
Just-In-Time debugging will not work for managed code hosted in a native application, such as Visualizers. |
Note |
---|
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