当前位置:首页 > SXL-100B+实验指导
SXL-100B+实验指导书
? 执行断点:当程序执行到某一地址(指令)时触发; ? 内存访问断点:当程序访问某一内存区域时触发; ? 中断断点:当发生某一中断时触发;
? I/O断点:当发生对某一I/O端口的读写操作时触发; ? 窗口消息断点:当窗口收到某些消息时触发; 以下是SoftICE中常用的断点命令: 命令 用途 BC BD BE BL BH BPX 清除断点 使断点暂时失效 使断点有效(激活断点) 列出所有断点 恢复上次使用SoftICE时设置的断点 设置断点,通过程序执行触发 BPX [地址]: 当执行到指定地址时暂停; BPX [IF布尔表达式]: 当布尔表达式为TRUE时暂停 BPR 设置断点,当对指定范围的内存执行特定操作时触发 BPR 起始地址 结束地址 [动作] [c=次数] 动作: R(读), W(写),RW(读写) BPRW 设置断点, 当对指定模块的内存区域执行特定操作时触发 BPRW 模块名 | 段选择器 [动作] 动作: R(读), W(写),RW(读写) BPIO 设置断点,当在指定I/O端口执行特定操作时触发 BPINT 设置断点,当发生指定的中断时触发 BMSG hWnd [起始消息 [结束消息]] 消息时触发 6.
输入/输出
在SoftICE中可直接通过命令对I/O端口进行读写,并且可指定数据的宽度(字节/字/双字): 命令 用途 13
格式 BPIO 端口 [动作] 动作: R(读), W(写),RW(读写) BPINT 中断号 格式 BC 断点列表 | * BD 断点列表 | * BE 断点列表 | * BL BH BMSG 设置断点,当指定窗口收到特定
I 据 O SXL-100B+实验指导书 从port所指定的端口输入数IB port (字节) IW port (字) ID port (双字) 向port所指定的端口输出数据value
OB port value (字节) OW port value (字) OD port value (双字) 7. 显示/修改信息
SoftICE提供了多种命令,用于显示/修改/复制内存中的数据,以及显示Windows中各种系统信息,如所有窗口、模块、进程、线程、VxD及其它对象的信息。这些信息对了解系统运行情况及程序的调试有着非常重要的作用。以下是常用的命令: D 显示内存数据 DB [起始地址 [L长度]] DW [起始地址 [L长度]] DD [起始地址 [L长度]] E 修改内存数据 EB [起始地址 [数据列表]] EW [起始地址 [数据列表]] ED [起始地址 [数据列表]] M S 内存数据块传送 在内存中查找二进制数据或字符串 R PCI VxD TIMER MOD HWND 8.
表达式的使用
在SoftICE的命令窗口中,可以随时根据需要计算各种表达式的值。表达式的语法与C语言表达式类似,此处不再赘述。
(五) SoftICE符号装入器
M 源地址L 长度(字节) 目的地址 S [-cu][ 源地址 L 长度 待查找数据(串)],c区分大小写,u表示查找Unicode串 R [-d | 寄存器 | 寄存器[=]值] PCI VxD [VxD名字 | 通配符] TIMER [Timer地址] MOD [-u | -s]|[模块名称|通配符] HWND [窗口句柄 | [[层数l][进程名]] 修改寄存器的值 显示PCI设备的配置信息 显示指定VxD的信息 显示Timer信息 显示指定模块的信息 显示指定窗口的信息 14
SXL-100B+实验指导书
用户用SoftICE调试软件前,必须先用SoftICE的符号生成程序
NMSYM产生VxD的符号文件(.NMS)供SoftICE使用。符号文件建立了VxD源程序中各种符号(变量名、函数名等)和VxD的二进制机器(汇编)指令间的关系。这样在SoftICE中不仅可看到编译后的VxD机器(汇编)代码,还可看到每段机器(汇编)代码对应的源程序,如此非常有利于程序的调试工作。当编译好VxD后,先使用SoftICE的Symbol Loader程序生成VxD的符号文件,然后再用Symbol Loader程序将该符号文件调入。
以下是使用Symbol Loader的具体步骤: (1)
运行SoftICE的symbol Loader程序。如下图所示:
(2) (3)
单击File菜单中Open Module菜单项,选取要调试的单击Module菜单下的Settings菜单项,弹出Settings
VxD文件;
对话框,如下图所示:
15
SXL-100B+实验指导书
在General页中输入源文件路径,在Debugging页中选择“Load symbol information only”选项,在Translation页中选择“Symbols and source code”选项并复选“Package source with symbol table”,然后单击“OK”退出Settings对话框; (4) (5) (6)
单击Module菜单中的Translate菜单项,开始产生符号单击Module菜单中的Load菜单项,加载符号文件; 若希望每次SoftICE启动时都调入该符号文件,可点击
文件;
Edit菜单中的SoftICE InitializationSetting菜单项,打开SoftICE的初始化设置对话框,如下图所示:
16
共分享92篇相关文档