我想在某个函数上设置一个断点,每次断开时,我都想搜索某个字符串的内存范围。如果该字符串存在,我不想继续。如果是,则继续。有什么建议?我认为它看起来像这样:
.foreach /s line (s -a 0 L?0xfffffff "UNIQUE_STRING") { .if (line =~ "UNIQUE_STRING") { .break } .else { gc } }
我对.foreach命令并不太熟悉,所以我可能会把它弄错了。我的另一个想法是这样的:
.if ((.shell -ci "s -a 0 L?0xfffffff \"UNIQUE_STRING\"" findstr "UNIQUE_STRING") != "") {} .else { gc }
有人做过这样的事吗? (对不起,其中一些是极端伪代码)
答案 0 :(得分:0)
您是否考虑过将此作为扩展名?如果找不到模式,IDebugDataSpaces :: SearchVirtual将返回错误,这将使您更容易。
-Scott
答案 1 :(得分:0)
我认为你的命令语法有点不对劲。尝试:
bu module!Class :: Function“.if(condition){。echo hit_breakpoint} .else {gc}”
每次调试器遇到Function()时,如果条件为真,它将执行echo语句。
在.hh(windbg帮助)中查找“条件断点”以获取重要信息。