If you use one of the command line debuggers based on the Debugger Engine, 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* 00af114c contoso!CreateWidget 009fe863 contoso!DestroyWidget 00a2e161 contoso!MakeWidgetReadOnly 00a93168 ... 0:001> bp 00a2e161 set breakpoint on MakeWidgetReadOnly
One of my colleagues frustrates his family by hiding the eggs for the annual Egg Hunt way too well. "Apparently, drawers and freezers are out of bounds in the traditional egg hunt."
Here are my house rules for Easter Egg Hunts:
- All eggs must be hidden within the implied egg-hiding area. No sneaky outliers.
- All eggs must be at least partially observable by egg-hunters without disturbing anything. No hiding in drawers or under flowerpots, or putting them on top of a tall piece of furniture that a shorter egg-hunter cannot see.
- However, you may still have to work to see them. They might be behind a sofa or placed above eye level. For example, you might find an egg tucked between the slats of horizontal blinds.
Personally, I like to hide eggs in plain sight. It's surprising how long it can take somebody to find a yellow egg resting brazenly on the lap of a yellow teddy bear.