发信人: sanvador()
整理人: webfan(2000-08-08 20:49:25), 站内信件
|
设定读写内存断点
我们设置了原始断点和条件表达式,这样就可以得到指定POLYDEMO窗口的数据结 构的地址。这个值存在窗口的扩展数据区,是一个全局句柄。LockWindowsInfo函 数取得这个全局句柄并使用Win32 API LocalLock将它转换成可以用来访问窗口常 量数据的一个指针。
1. 执行到57行的return语句来得到这个窗口常量数据的指针值。
:G .57
2. Win32 API函数将32位值返回到EAX寄存器。因此你可以使用BPMD命令并指定 EAX寄存器在常量数据指针上设置一个内存断点。
:BPMD EAX
BPMD命令使用由Intel CPUs所提供硬件调试寄存器来监视线性地址中对DWORD值的 读写(就是双字节地址)。本例中,你使用BPMD来跟踪(trap...搞过汇编的人都 应该知道是什么意思,我还没有找到一个恰当的词汇来形容它,先用"跟踪"来解 释吧!)对第一个窗口常量数据的DWORD值的读写访问。
3. 用BL命令检验内存断点的设置。类似于输出如下
:BL
00) BPX LockWindowInfo IF ((ESP-)4)== 0x100172
01) BPMD #0023:001421F8 RW DR3
断点0是位于LockWindowInfo上的执行断点,断点1是BPMD在窗口常量数据上的断 点。
4. 使用BD命令禁用LockWindowInfo上的断点。
:BD 0
SoftICE提供BC(清除断点)和BD(禁用断点)命令来清除或禁用断点。当你调试 过程中还想用到某个断点的话,禁用它。如果你不再使用某个断点了,清除它比 较好。
5. 用BL命令查看在LockWindowInfo上禁用的断点。SoftICE在断点索引之后放置 一个星号(*)以表示它被禁用了。
:BL
00)* BPX LockWindowInfo IF ((ESP-)4)== 0x100172
01) BPMD #0023:001421F8 RW DR3
注意:你可以使用BE命令重用断点:
:BE breakpoint-index-number
6. 退出SoftICE
当POLYDEMO窗口访问它窗口常量数据的第一个DWORD值时断点触发,SoftICE弹出 。
当由于内存断点触发而使SoftICE弹出,你应该是在RolyRedraw或PolyDrawBez函 数里。这两个函数都访问POLYDRAW窗口常量数据区偏移量为0的nBez Total区域。
注意:Intel CPU的体系结构将内存断点定义为traps,就是在内存被访问之后断 点才被触发。在SoftICE中,被突出显示的指令或源代码行是访问内存指令之后的 下一条语句。
7. 用BC命令清除所设置的断点。
:BC *
注意:你可以在BC、BD、BE命令中使用通配符来对所有断点进行操作。
8. 推出SoftICE
操作系统结束程序运行。
庆祝你完成了第一个SoftICE的调试过程。本次调试中,你跟踪了源代码,看了本 地数据和结构,设置了一次性、条件和内存断点。SoftICE还有很多更高级的命令 。ADDR、HEAP、LOCALS、QUERY、THREAD、TYPES、WATCH和WHAT仅仅是SoftICE许 多命令中的一部分。它们可以使你更加灵活快速的调试。参考SoftICE命令参考手 册来得到所以SoftICE命令的解释。
(页眉的格言)The devil is in the details.
Descarts
第四章 将代码装入SoftICE
调试的概念
SoftICE允许你在源代码的层次上调试应用程序和设备驱动程序。要做到这一步, SoftICE使用了一个叫做Symbol Loader的工具。由它将编译模块的调试信息转换 成.NMS的符号文件。Symbol Loader可以将.NMS文件和源码装入到SoftICE中,以 供调试。
什么时候装入.NMS文件依赖于你所要调试的模块是运行在操作系统启动之后,还 是设备驱动程序或静态VxD,在操作系统初始化之前就已经载入了。如果你要装入 设备驱动程序或VxD,SoftICE在其初始化是就要预装入模块的符号和源码。如果 你调试的模块、组件运行于操作系统启动之后,你可以在需要的时候用Symbol L oader装入。
本章介绍了如何使用Symbol Loader将模块装入到SoftICE中。本章也解释如何使 用Symbol Loader在DOS命令行模式自动完成许多常用的任务和使用Symbol Loade r命令行工具NMSYM来建立批处理过程转换和载入符号信息。
注意:Symbol Loader仅支持Windows程序。要调试MS-DOS程序,使用UTIL16路径 下的工具。
------------------------------------------
唉,好多天都没有干正经的事情了。我可要痛改前非了!!
感觉很累,不知道是什么缘故。
真的希望这些文章可以给你以帮助。让你找到成功的感觉。无论你做了什么...只 要你能快乐...我亦快乐。
Sanvador.KT
-- 无意苦争春
一任群芳妒
零落成泥碾作尘
依旧香如故
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 61.137.190.14]
|
|