Holy cow, I wrote a book!
If you use one of the command line debuggers based on the
you can set a breakpoint on a function whose name contains spaces
or other special characters by quoting the symbol name.
The trick here is that you do not quote the entire string;
you quote only the symbol name.
0:001> bu @!"CSimpleArray<wchar_t *>::CSimpleArray<wchar_t *>"
Note that the quotation marks do not go around the @!
They go only around the symbol.
(Otherwise, the debugger thinks you are setting a breakpoint
Another trick for setting breakpoints is using tab autocompletion
for symbols. If you type
bp contoso!*Widget* and then hit Tab repeatedly,
you will cycle through all the matches.
(It takes a few seconds to build the list of matches, so be patient
the first time you hit Tab.)
Personally, I use the x command to print out all the
matches, and then cherry-pick the one I want.
0:001> x contoso!*Widget*
0:001> bp 00a2e161 set breakpoint on MakeWidgetReadOnly