Edit: Visual Studio 2015's new exception window is so much faster than the old dialog that I no longer care as much about using a keyboard shortcut for it.
Is there a macro or keyboard shortcut that will toggle "break when an exception is thrown" without using the GUI?
Opening the dialog with ctrl+alt+e and checking the "Common Language Runtime Exceptions" "Thrown" box then clicking OK is simple enough, but this is something I do a lot. I would rather have a keyboard shortcut for this.
This question is a duplicate of Any have a Visual Studio shortcut/macro for toggling break on handled/unhandled exceptions?
However, the poster accepted an answer that doesn't really work, and I would really like an answer that does work.
The answer in the duplicate question is not acceptable because it toggles only one specific exception, not the entire CLR group.
"Well write a loop then." you say. But not so fast! Someone tried that already and it was uselessly slow. (Yes I've verified that its slow on my system as well.)
So the challenge is to use a macro to toggle the entire CLR Exceptions category in less than 1 or 2 seconds. This question is a duplicate of Any have a Visual Studio shortcut/macro for toggling break on handled/unhandled exceptions?
The suggestion of setting the special ExceptionSetting for the group does indeed toggle the state of the top-level checkbox. However, it doesn't seem to toggle the individual Exceptions below it in the tree, and moreover, my process does not stop when such exceptions are thrown as it does if I manually check the top-level checkbox. Do you see different behavior?
I have created a free Visual Studio extension that can do that reliably: Exception Breaker.
It uses undocumented
IDebugSession2.SetException
call that is very fast: all exceptions are set/unset in 20 to 60 milliseconds.You could use a tool like AutoHotKey to create a recorded script (mouse clicks or key presses) and then assign it a hotkey that will play it back when pressed...
Very similar to the other answer, but there is a special ExceptionSetting for the group.
Here's Bryce Kahle's very useful macro blindly updated to run in VS2010:
Well, I wrote a VS2008 C# based plug-in that toggles the 386 exceptions, and it takes about 1 second per state toggle. I'm assuming that's due to COM inter-op.
This was based on the VB/macro code in the one of your links. I could not find an easier C++ method (but not ruling it out).
The next level would be to make a plug-in that has a keyboard binding, that then opens the Exceptions UI and then "clicks" the correct tick box for you.
Good luck.