Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

Windows内核调试

帖子发起人: kk345   发起时间: 2014-09-03 23:27 下午   回复: 1

Print Search
帖子排序:    
   2014-09-03, 23:27 下午
wiskx920 离线,最后访问时间: 2014/8/29 16:16:36 kk345

发帖数前500位
注册: 2014-08-29
发 贴: 4
Sleep [|-)] 张老师,条件断点为什么会这样呢?
Reply Quote
测试函数
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都断下来了,总是匹配成功

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

谢谢!
 




IP 地址: 已记录   报告
   2014-09-04, 11:09 上午
wiskx920 离线,最后访问时间: 2014/8/29 16:16:36 kk345

发帖数前500位
注册: 2014-08-29
发 贴: 4
Re: 张老师,条件断点为什么会这样呢?
Reply Quote
解决了 应该是没删除变量的原因
IP 地址: 已记录   报告
高端调试 » 软件调试 » Windows内核调试 » 张老师,条件断点为什么会这样呢?

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.