Ask Learn
Preview
Please sign in to use this experience.
Sign inThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
I get this question quite frequently, "I know how to break on all CLR exceptions, but how do I break on a specific exception, e.g. I want to see only Sql Exceptions?"
It is actually quite easy to do in WinDbg using the soe (StopOnException) command found in sos.dll
StopOnException [ -derived] [ -create | -create2] <Exception> <Pseudo-register number> |
Causes the debugger to stop when the specified exception is thrown, but to continue running when other exceptions are thrown. The -derived option catches the specified exception and every exception that derives from the specified exception. |
So after you load SOS (Check Windbg QuickStart guide for instructions on how to do that) you need to run the following:
0:052> !soe -Create System.Data.SqlClient.SqlException
Breakpoint set
0:052> g
(234c.1b28): CLR exception - code e0434352 (first chance)
(234c.1b28): CLR exception - code e0434352 (first chance)
CLR exception type: System.Net.WebException
"The remote server returned an error: (304) Not Modified."
(234c.1b28): CLR exception - code e0434352 (first chance)
CLR exception type: System.Net.WebException
"The remote server returned an error: (304) Not Modified."
(234c.1b28): CLR exception - code e0434352 (first chance)
(234c.1cd8): CLR exception - code e0434352 (first chance)
'System.Data.SqlClient.SqlException hit'
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
KERNELBASE!RaiseException+0x3d:
000007fe`fdb5cacd 4881c4c8000000 add rsp,0C8h
You will notice that the debugger is skipping all exceptions and breaking only on the exception type you are interested in.
Please sign in to use this experience.
Sign in