我有一个像这样的二进制函数class<class1::class2>::function
。我不能直接在函数上使用bp
, u
, 之类的命令x
。我现在唯一的选择是x class*
然后在输出中查找地址,然后设置断点bp <address>
。
有什么我想念的吗?复制和粘贴地址每个调试会话太麻烦了。一种选择是使用 pykd,但我正在寻找一种纯粹的 Windbg 解决方案。
我有一个像这样的二进制函数class<class1::class2>::function
。我不能直接在函数上使用bp
, u
, 之类的命令x
。我现在唯一的选择是x class*
然后在输出中查找地址,然后设置断点bp <address>
。
有什么我想念的吗?复制和粘贴地址每个调试会话太麻烦了。一种选择是使用 pykd,但我正在寻找一种纯粹的 Windbg 解决方案。
如果您添加特殊的转义序列,则支持它们 @!" symbol "
确保设置已解决的断点而不是未解决的断点
并注意单个地址可能指向这些类的多个实例
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
bm
可能有助于通过某种模式匹配您的功能。看到这个帖子。