3

I have a function in a binary like this class<class1::class2>::function. I can't directly use commands like bp, u, x on the function. The only option I have right now is x class* and then look in the output for the address and then set a breakpoint bp <address>.

Is there something that I'm missing? Its too cumbersome to copy and paste addresses each debugging session. One option is to use pykd, but I am looking for a pure windbg solution.

2 Answers 2

6

they are supported if you add the special escape sequence @!" symbol "

make sure you set a resolved breakpoints not an unresolved one

and be aware a single address may point to several instantiations of these classes

windbg version 
Microsoft (R) Windows Debugger Version 10.0.17744.1001 X86

lets look for some functions with angle brackets in them

0:000> x /f /v windbg!*<*<*<*

prv func   00b76da9            6d windbg!Debugger::Utils::SmartCleanup_______snipped
prv func   00b76e16            46 windbg!Debugger::Utils::SmartCleanup_______snipped
pub func   00b9bcd1             0 windbg!std::basic_string<char,std::_______snipped
snip 



0:000> bp @!" windbg!Debugger::Utils::SmartCleanup_____snipped "
Bp expression '@!" windbg!Debugger::Utils::SmartCleanup<<lamb___snipped "'    

could not be resolved, adding deferred bp <<<<<

0:000> bl
     0 e Disable Clear u             0001 (0001) (@!" windbg!Debugger::Utils::SmartCleanup<<lambda_snipped
2

bm might help to match your function by some pattern. See this post.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.