标题: [原创]dr-debug使用詳解
[打印本页]
作者: wolfwood
时间: 2003-2-14 00:00
标题: [原创]dr-debug使用詳解
debug使用詳解
首先,向大家推薦使用DR-DOS7所帶的DR-DEBUG,指令支持到Pemtium pro,功能強大,且支持宏。最方便的是可以用回車代替上一條u/d/p/t指令,方便察看和調試。
下面把其幫助翻譯如下:
匯編,把輸入的匯編語言轉成機器碼
A [address] (example: Acs:100)
設置中斷點以調試
B [address] [count] [condition] (example: B100 2 al=80)
比較兩段内存内容
Compare C range address (example: C200 20d 500)
顯示指定内存數據
Dump D [range] (example: Dcs:500 L 10)
編輯内存數據
Enter E [address] [data] (example: Eds:500 "Hello ")
填充内存
Fill F range data (example: F100 13f "Test ")
運行程序從指定點
Go G [=address] [breakpoints] (example: Gcs:4bb0)
計算
Hex H [value1] [value2] (example: H10e 01)
從I/O埠輸入
Input I port (example: I3f2)
載入文件或指定邏輯扇區内容
Load L [address] [drive] [firstsec] [number] (ex: L0Cff 3 09 10)
移動(複製)内存内容
Move M range address (example: Mcs:200 220 cs:400)
指定操作文件名
Name N [drive:] [path] filename (example: Ntest.com)
向I/O埠輸出
Output O port value (example: O3ff 10)
單步執行(跳過int/rep/call等)
Proceed P [=address] [number] (example: P=ds:3fff)
退出debug
Quit Q
更改或顯示寄存器
Register R [register_name] (example: Rax 1000)
搜索數據于指定内存
Search S range data (example: Sds:200 500 32)
單步執行(進入int/rep/call等)
Trace T [=address] [number] (example: T=3cff:0100 10)
反匯編指定内存中機器碼
Unassemble U [range] (example: U3cff:0200 400)
顯示屏幕内容(相當於)
Viewswap V (any key returns)
寫入文件或指定邏輯扇區内容
Write W [address] [drive] [firstsec] [number] (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=(^[ss:sp] + (bl * %1001) + ''a'').
-代表基本debug命令
+代表dr-debug特有命令
x代表只能在dr-debug擴展模式下執行的指令,用/s進入默認模式,用/x進入擴展模式
--- Dump commands ---
-D[number] x 設置/查詢默認顯示長度(按字節)
-DB[number] x 設置/查詢默認顯示長度,並返回按字節模式
D=[hexdigit|?|-] x 設置/查詢 察看開始點(0-f)
D [range] - 顯示指定内存内容(/S 模式) / 重復上一次D? 命令(/X 模式)
DB[range] - 顯示指定内存内容(按字節)
DW[range] x 顯示指定内存内容(按字)
DD[range] x 顯示指定内存内容(按雙字)
DP[range] x 顯示指定内存的指針(遠間指針-段:偏移)
DI[range] x 顯示中斷向量表(range=中斷號)
--- Enter commands ---
(省略list時,回車後輸入數據,"."退出)
E [address