![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-21 05:32 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,270 会员排行 |
| DOS学习入门 & 精彩文章 (教学室) » [原创]dr-debug使用詳解 |
| 可打印版本 5,244 / 8 |
| 第1楼 wolfwood | 发表于 2003-02-14 00:00 |
| 初级用户 发帖 14 积分 158 | |
|
[原创]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楼 minisheep | 发表于 2003-02-14 00:00 |
| 高级用户 发帖 233 积分 830 | |
|
很好! 那能下呀!要单独的文件!
|
|
| 第3楼 wolfwood | 发表于 2003-02-14 00:00 |
| 初级用户 发帖 14 积分 158 | |
|
自己下個dr-dos不就有了,裏邊還有更強的工具——taskmgr(dos下的多任務管理器)等等,但不能在別的dos上用,而且裏面有不少保護措施,不那麽容易破解的。不過早已經有人破掉了。
|
|
| 第4楼 Wengier | 发表于 2003-02-14 00:00 |
| 系统支持 发帖 10,521 积分 27,736 | |
|
我用过DR-DOS中的TASKMGR,不过很不稳定,并不实用。
|
|
| 第5楼 闪猛 | 发表于 2003-02-15 00:00 |
| 中级用户 发帖 69 积分 327 | |
|
楼主,下次发表文章时能不能用简体中文?
你的文章我看得眼睛发疼,太费劲了。:( |
|
| 第6楼 Wengier | 发表于 2003-02-15 00:00 |
| 系统支持 发帖 10,521 积分 27,736 | |
|
是吗?我看繁体中文时倒觉得很习惯,虽然看简体中文更习惯些。
|
|
| 第7楼 wolfwood | 发表于 2003-02-16 00:00 |
| 初级用户 发帖 14 积分 158 | |
以下是引用Wengier在2003-2-15 7:16:51的发言: 對吧,中華書局的書和臺灣的文獻看多了就是覺得還是繁體的舒服。 |
|
| 第8楼 Wengier | 发表于 2003-02-17 00:00 |
| 系统支持 发帖 10,521 积分 27,736 | |
|
繁体中文是中华的瑰宝呀,现在全世界华人地区(除大陆外)都在用。大陆也是40多年前才开始用简体中文的。
|
|
| 第9楼 LanE | 发表于 2003-02-18 00:00 |
| 银牌会员 发帖 648 积分 1,835 | |
|
呵呵,无所谓的,只要能看得懂就好啊。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |