random debugger tip: catching COM exceptions


I was cleaning out some old mail and came across this tip.  You can tell it was a long time ago, because it really only matters if you're writing COM objects, something I haven't done in a long, long time.


Some parts of Visual Studio use COM as a layer to handle cross-thread calls and enable cross-machine remoting.  One of the downsides of this technology is that a COM exception in a server is caught by COM and converted to an HRESULT.  That HRESULT is harder to notice & catch in a debugger than the original exception.


However, there is a registry key that will change this behavior.  When this key is set, the exception is passed through normally, and can be detected & debugged through normal mechanisms.


The key is:



[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole]
"IgnoreServerExceptions"="Y"


(The real reason I'm blogging this is so that I can find it in the future if I ever write COM again. :-))

Skip to main content