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内核调试

帖子发起人: zhaohui2   发起时间: 2014-07-19 15:39 下午   回复: 3

Print Search
帖子排序:    
   2014-07-19, 15:39 下午
SkyDown 离线,最后访问时间: 2017/5/20 7:47:23 zhaohui2

发帖数前50位
注册: 2013-06-19
发 贴: 19
学习<软件调试>4.3.4BTF遇到的问题
Reply Quote
  1.     int m,n;
  2.     MSR_STRUCT msr;
  3.     CDvrAgent da;
  4.     if(!da.Init())
  5.     {
  6.         printf("Failed in initialization.\n");
  7.         return E_FAIL;
  8.     }
  9.     memset(&msr,0,sizeof(MSR_STRUCT));
  10.     msr.MsrNum=DEBUGCTRL_MSR;
  11.     msr.MsrLo|=BTF;
  12.     da.WRMSR(msr);
  13.     //Beginning of the code which will run in full speed
  14.     m=10,n=2;
  15.     m=n*2-1;
  16.     if(m==m*m/m)
  17.         m=1;
  18.     else
  19.     {
  20.         m=2;        
  21.     }
  22.     //End of the code which runs in full speed
  23.    m*=m;
为什么示例程序会从14行直接滑到23行,而不是17或者20

IP 地址: 已记录   报告
   2014-07-21, 20:12 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 学习<软件调试>4.3.4BTF遇到的问题
Reply Quote
把汇编代码显示出来
IP 地址: 已记录   报告
   2014-07-22, 07:29 上午
SkyDown 离线,最后访问时间: 2017/5/20 7:47:23 zhaohui2

发帖数前50位
注册: 2013-06-19
发 贴: 19
Re: 学习<软件调试>4.3.4BTF遇到的问题
Reply Quote
汇编代码如下
  1.     msr.MsrNum=DEBUGCTRL_MSR;
  2. 009515C1  mov         dword ptr [msr],1D9h 
  3.     msr.MsrLo|=BTF;
  4. 009515C8  mov         eax,dword ptr [ebp-34h] 
  5. 009515CB  or          eax,2 
  6. 009515CE  mov         dword ptr [ebp-34h],eax 
  7.     da.WRMSR(msr);
  8. 009515D1  lea         eax,[msr] 
  9. 009515D4  push        eax 
  10. 009515D5  lea         ecx,[da] 
  11. 009515D8  call        CDvrAgent::WRMSR (095124Eh) 
  12.     //Beginning of the code which will run in full speed
  13.     m=10,n=2;
  14. 009515DD  mov         dword ptr [ m ],0Ah 
  15. 009515E4  mov         dword ptr [ n ],2 
  16.     m=n*2-1;
  17. 009515EB  mov         eax,dword ptr [ n ] 
  18. 009515EE  lea         ecx,[eax+eax-1] 
  19. 009515F2  mov         dword ptr [ m ],ecx 
  20.     if(m==m*m/m)
  21. 009515F5  mov         eax,dword ptr [ m ] 
  22. 009515F8  imul        eax,dword ptr [ m ] 
  23. 009515FC  cdq 
  24. 009515FD  idiv        eax,dword ptr [ m ] 
  25. 00951600  cmp         dword ptr [m],eax 
  26. 00951603  jne         main+0FEh (095160Eh) 
  27.         m=1;
  28. 00951605  mov         dword ptr [ m ],1 
  29.     else
  30. 0095160C  jmp         main+105h (0951615h) 
  31.     {
  32.         m=2;       
  33. 0095160E  mov         dword ptr [ m ],2 
  34.     }
  35.     //End of the code which runs in full speed
  36.     m*=m;
  37. 00951615  mov         eax,dword ptr [m] 
  38. 00951618  imul        eax,dword ptr [m] 
  39. 0095161C  mov         dword ptr [m],eax 


IP 地址: 已记录   报告
   2014-07-23, 22:34 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 学习<软件调试>4.3.4BTF遇到的问题
Reply Quote
结合汇编代码再阅读书上的说明,如果还有疑问,请指出是哪句话不能理解
IP 地址: 已记录   报告
高端调试 » 软件调试 » Windows内核调试 » Re: 学习<软件调试>4.3.4BTF遇到的问题

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