Re: 张老师,条件断点为什么会这样呢?

Windows内核调试

张老师,条件断点为什么会这样呢?


kk345 2014-09-03, 23:27 下午
测试函数
void qqq(char * str) {}

void main()
{
while(1)
{
qqq("c1");

qqq("c2");

qqq("c3"); 

Sleep(300);
}

}


设置条件断点
bp qqq "r $t1=poi(esp+4); as /ma $String $t1; .if($scmp(\"${$String}\",\"c1\")==0){} .else{.printf\"File:%ma     \",$t1;g}"

查看断点
0:000> bl
 0 e 00d5c540 [d:\test\ctest\ctest\ctest.cpp @ 9]    0001 (0001)  0:**** CTest!qqq "r $t1=poi(esp+4); as /ma c1 $t1; .if($scmp(\"c1\",\"c1\")==0){} .else{.printf\"File:%ma     \",$t1;g}"


为什么String被固定为字符串 "c1" 了,然后每次运行qqq都断下来了,总是匹配成功

不能根据调用参数动态对比吗?

谢谢!
 



Re: 张老师,条件断点为什么会这样呢?


kk345 2014-09-04, 11:09 上午
解决了 应该是没删除变量的原因

Powered by Community Server Powered by CnForums.Net