我在像class<class1::class2>::function这样的二进制文件中有一个函数。我不能直接在函数上使用bpux之类的命令。我现在唯一的选择是x class*,然后在输出中查找地址,然后设置断点bp <address>

我缺少什么吗?复制和粘贴每个调试会话的地址太麻烦了。一种选择是使用pykd,但我正在寻找一种纯粹的windbg解决方案。

#1 楼

如果添加特殊的转义序列,则支持它们。这些类

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可能有助于按某种模式匹配您的功能。请参阅这篇文章。