![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-13 05:20 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS学习入门 & 精彩文章 (教学室) » 转贴:dr-debug使用详解(简体)[作者: wolfwood ] |
| 可打印版本 1,500 / 2 |
| 第1楼 Lydong | 发表于 2003-02-16 00:00 |
| 元老会员 发帖 407 积分 1,468 来自 广州 | |
|
转贴:dr-debug使用详解(简体)[作者: wolfwood ] dr-debug使用详解 debug使用详解 首先,向大家推荐使用DR-DOS7所带的DR-DEBUG,指令支持到Pemtium pro,功能强大,且支持宏。最方便的是可以用回车代替上一条u/d/p/t指令,方便察看和调试。 下面把其帮助翻译如下: 汇编,把输入的汇编语言转成机器码 A (example: Acs:100) 设置中断点以调试 B (example: B100 2 al=80) 比较两段内存内容 Compare C range address (example: C200 20d 500) 显示指定内存数据 Dump D (example: Dcs:500 L 10) 编辑内存数据 Enter E (example: Eds:500 "Hello " ![]() 填充内存 Fill F range data (example: F100 13f "Test " ![]() 运行程序从指定点 Go G (example: Gcs:4bb0) 计算 Hex H (example: H10e 01) 从I/O埠输入 Input I port (example: I3f2) 载入文件或指定逻辑扇区内容 Load L (ex: L0Cff 3 09 10) 移动(复制)内存内容 Move M range address (example: Mcs:200 220 cs:400) 指定操作文件名 Name N filename (example: Ntest.com) 向I/O埠输出 Output O port value (example: O3ff 10) 单步执行(跳过int/rep/call等) Proceed P (example: P=ds:3fff) 退出debug Quit Q 更改或显示寄存器 Register R (example: Rax 1000) 搜索数据于指定内存 Search S range data (example: Sds:200 500 32) 单步执行(进入int/rep/call等) Trace T (example: T=3cff:0100 10) 反汇编指定内存中机器码 Unassemble U (example: U3cff:0200 400) 显示屏幕内容(相当于) Viewswap V (any key returns) 写入文件或指定逻辑扇区内容 Write W (ex: Wds:200 0 16 0f) (range 可以是: 开始偏移 结束偏移 或 开始地址 L 长度) 以下是详细使用说明: --- 术语表 --- pathname - 文件名(路径可选) testparms - 参数 address - 内存地址偏移 如果省略段地址,以CS用作汇编\反汇编;DS用于其他功能 range - 可以是: 开始偏移 结束偏移 开始地址 L 长度 开始地址, +长度 reg - 寄存器名 list - 由空格或逗号分开的一些数值(给定类型的) drive - 0 = A:, 1 = B:, ... firstsec - 逻辑扇区号(以0开始) --- 运算符号 --- 数可以是16进制(默认的), #十进制, \八进制, %二进制, '字符串'("chars" ,寄存器, , ^堆栈。 可以使用运算符(+ - * /) 及 (括号) 。 例:Rax=(^ + (bl * %1001) + 'a' .-代表基本debug命令 +代表dr-debug特有命令 x代表只能在dr-debug扩展模式下执行的指令,用/s进入默认模式,用/x进入扩展模式 --- Dump commands --- -D x 设置/查询默认显示长度(按字节) -DB x 设置/查询默认显示长度,并返回按字节模式 D= x 设置/查询 察看开始点(0-f) D - 显示指定内存内容(/S 模式) / 重复上一次D? 命令(/X 模式) DB - 显示指定内存内容(按字节) DW x 显示指定内存内容(按字) DD x 显示指定内存内容(按双字) DP x 显示指定内存的指针(远间指针-段:偏移) DI x 显示中断向量表(range=中断号) --- Enter commands --- (省略list时,回车后输入数据,"."退出) E ] + 输入数据 EB] x 输入数据(按字节) EW] x 输入数据(按字) ED] x 输入数据(按双字) EP] x 输入数据(按远间指针) EI] x 输入中断向量 --- Compare commands --- C range,address - 比较两段内存内容 CBrange,address x 比较两段内存内容(按字节) CWrange,address x 比较两段内存内容(按字) CDrange,address x 比较两段内存内容(按双字) CPrange,address x 比较两段内存内容(按远间指针) --- Fill commands --- F range,list - 填充数据到内存 FBrange,list x 填充数据到内存(按字节) FWrange,list x 填充数据到内存(按字) FDrange,list x 填充数据到内存(按双字) FPrange,list x 填充数据到内存(按远间指针) --- Search commands --- S address list - 搜索数据于指定内存 -Saddress list x 搜索数据于指定内存并保存第(cx+1)个匹配的偏移地址于cx中 SBaddress list x 搜索数据于指定内存(按字节)(-SB 如前) SWaddress list x 搜索数据于指定内存(按字)(-SW 如前) SDaddress list x 搜索数据于指定内存(按双字)(-SD 如前) SPaddress list x 搜索数据于指定内存(按远间指针)(-SP 如前) --- Port I/O commands --- I port - 从I/O埠输入 IB port x 从I/O埠输入(按字节) IW port x 从I/O埠输入(按字) ID port x 从I/O埠输入(按双字)(386以上支持) O port,value - 向I/O埠输出 OB port,value x 向I/O埠输出(按字节) OW port,value x 向I/O埠输出(按字) OD port,value x 向I/O埠输出(按双字)(386以上支持) --- Macro commands --- -: + 清除所有宏 :macroname + 定义宏 = + 列出宏或执行宏 --- Disk I/O commands --- N - 为下一个磁盘操作释放参数 N? + 显示参数 N - 指定文件 L - 载入文件 Laddress - 载入文件到指定内存地址 W - 写内存到文件,始于cs:100 长度为BX-CX W - 写内存到文件,始于指定地址 长度为BX-CX Laddress,drive,firstsec,number - 载入指定逻辑扇区到指定内存(num=载入扇区个数) Waddress,drive,firstsec,number - 保存指定内存到指定逻辑扇区(num=保存扇区个数,或用BX-CX来指定其长度-按字节) --- Trace commands --- -B x 清除所有断点(breakpoint所译,下同) -Baddress x 清除指定地址处断点 B + 列出断点 Baddress] + 设置断点于指定内存,每count次中断,中断条件:reg=val T - 单步执行从指定地址开始的number条指令 TU + 同于 T ,但不显示中间指令的执行结果 P - 同于 T ,但跳过call和int子程序 PU + 同于 P ,但不显示中间指令的执行结果 G 执行从指定地址开始(或CS:IP),停止在 --- Assemble command --- A - 进入输入汇编语言模式(回车/. 退出),支持注释 --- Unassemble commands --- -Unumber x 设置/查询默认反汇编长度 U - 反汇编指定内存指令 --- Help commands --- ? - 显示基本帮助 ?topic + 显示特定主题或叶数(1..8) ?? or ?0 + 显示所有帮助 --- Display and input modes --- A= x 设置/查询默认地址模式(16位/32位) O= x 设置/查询默认操作数模式(16位/32位) R= + 设置/查询默认寄存器显示模式(16位/32位) RF - 设置/查询标志位寄存器 RDR x 按16位寄存器方式显示标志位寄存器(/X 模式下默认) RMS x 按标准方式显示标志位寄存器(/S 模式下默认) --- Utility commands --- ASCII + 显示一个ASCII表 CLS + 清屏 CPU + 显示CPU类型(支持到Pentium pro)和工作模式(实模式/32位保护模式/虚拟86模式) H value + 显示 'value' 按16进制、十进制、字符、八进制和二进制 H value1 value2 + 显示value1,value2 相加、减、乘、除以及取模的结果 V + 显示用户屏幕(程序执行结果,如同c中的) ; comment + 注释 ---------------------------------------------- 我不能偷也不能抢 |
|
| 第2楼 清扬菱子 | 发表于 2004-02-02 00:00 |
| 初级用户 发帖 1 积分 106 | |
|
写的好。就是我太菜,看懂的只有小部分
|
|
| 第3楼 Kinglion | 发表于 2004-02-03 00:00 |
| 铂金会员 发帖 1,924 积分 5,798 来自 金獅電腦軟體工作室 | |
|
谢谢版主,尽管我经常使用它,我却没有想到将它介绍给大家,惭愧!打开附件
请大家对照着版主的帮助信息来分享这个DRDOS里强大的工具软件吧! |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |