DBH 命令
從 DBH 命令列,您可以使用各種命令來分析符號和符號檔。
下表列出控制 DBH 選項並執行其他基本工作的命令。
Command | 效果 |
---|---|
verbose [on|off] |
開啟或關閉詳細資訊模式。 沒有參數,會顯示目前的詳細資訊模式設定。 |
慰問 [路徑] |
設定符號搜尋路徑。 沒有參數,會顯示目前的符號搜尋路徑。 |
symopt 選項 symopt +Options symopt -Options symopt |
設定符號選項。 沒有 + 或 -,Options 的值會取代目前的符號選項。 如果使用 + 或 - ,Options 會指定要加入或移除的選項;在 或 之前-+必須有空格,但之後沒有空格。 如果沒有參數,則會顯示目前的符號選項。 啟動 DBH 時,所有符號選項的預設值都會0x10C13。 如需可用選項的清單,請參閱 設定符號選項。 |
說明 |
顯示 DBH 命令的說明文字。 |
退出 |
結束 DBH 程式。 |
下表列出載入、卸除和重新基底目標模組的命令。 如果 DBH 是在命令列上指定進程標識碼來啟動,則無法使用這些命令。
Command | 效果 |
---|---|
載入檔案 |
載入指定的模組。 檔案 應該指定可執行檔或符號檔的路徑、檔名和擴展名。 |
卸載 |
卸除目前的模組。 |
基位址 |
將預設基位址設定為指定的值。 所有符號地址都會決定相對於這個基位址。 |
下表列出搜尋檔案和顯示目錄資訊的命令。
Command | 效果 |
---|---|
findexe 檔案路徑 |
使用 FindExecutableImage 例程,在指定的路徑中找出指定的可執行檔。 |
finddbg 檔案路徑 |
在指定的路徑中找出指定的 .dbg 檔案。 包含 .dbg 擴充功能是選擇性的。 |
dir 檔案路徑 |
使用 EnumDirTree 例程,找出指定路徑或此路徑下任何子目錄中的指定檔案。 |
srchtree 路徑檔案 |
使用 SearchTreeForFile 例程,找出指定路徑或此路徑下任何子目錄中的指定檔案。 此命令與 dir 相同,不同之處在於參數會反轉。 |
ffpath 檔案 |
在目前符號路徑中尋找指定的檔案。 |
下表列出剖析模組清單並控制預設模組的命令。 默認模組及其基地址會顯示在 DBH 提示字元上。
Command | 效果 |
---|---|
mod 位址 |
將預設模組變更為具有指定基位址的模組。 |
刷新 |
重新整理模組清單。 |
omap |
顯示模組 OMAP 結構。 |
epmod PID |
列舉為指定進程載入的所有模組。 PID 會指定所需進程的進程標識碼。 |
資訊 |
顯示目前載入模組的相關信息。 |
obj Mask |
列出與預設模組相關聯的所有物件檔案,該模組符合指定的模式。 遮罩 可能包含各種通配符和規範;如需詳細資訊,請參閱 字元串通配符語法 。 |
src Mask |
列出與預設模組相關聯的所有來源檔案,該模組符合指定的模式。 遮罩 可能包含各種通配符和規範;如需詳細資訊,請參閱 字元串通配符語法 。 |
enummod |
列舉所有載入的模組。 除非 DBH 在沒有目標的情況下執行,否則一律至少有一個模組,在此情況下沒有。 |
下表列出顯示及搜尋符號的命令。
Command | 效果 |
---|---|
列舉模組!象徵 |
列舉符合指定模組和符號的所有符號。 Module 指定要搜尋的模組(不含擴展名)。 符號 會指定符號必須包含的模式。 模組和符號都可能包含各種通配符和規範;如需詳細資訊,請參閱字串通配符語法。 |
enumaddr 位址 |
列舉與指定地址相關聯的所有符號。 |
addr Address |
顯示與指定地址相關聯之符號的詳細資訊。 |
名稱 [Module!]象徵 |
顯示指定符號的詳細資訊。 可包含選擇性 的Module 規範。 不應使用通配符,因為如果多個符號符合模式, 則名稱 只會顯示其中一個。 |
下一個 [Module!]象徵 下一個位址 |
顯示指定符號或地址之後下一個符號的詳細資訊。 如果符號是以名稱指定,可能會包含選擇性 的Module 規範,但不應使用通配符。 |
上一頁 [Module!]象徵 上一個位址 |
顯示指定符號或位址前一個符號的詳細資訊。 如果符號是以名稱指定,可能會包含選擇性 的Module 規範,但不應使用通配符。 |
line File#LineNum |
顯示與指定之來源行相關聯的二進位指令十六進位位址,以及與此行相關聯的任何符號。 同時將目前的行號設定為等於指定的行號。 檔案 會指定原始程式檔的名稱,而 LineNum 會指定該檔案內的行號;這些應該以數位符號 ( # ) 分隔。 |
srclines File LineNum |
顯示與指定之來源行相關聯的物件檔,以及與這一行相關聯之二進位指令的十六進位位址。 不會變更目前的行號。 檔案 會指定原始程式檔的名稱,而 LineNum 會指定該檔案內的行號;這些應該以空格分隔。 |
laddr 位址 |
顯示對應至指定位址之符號的來源檔案和行號。 |
linenext |
遞增目前的行號,並顯示新行號的相關信息。 |
lineprev |
遞減目前的行號,並顯示新行號的相關信息。 |
locals 函式 [Mask] |
顯示指定函式中包含的所有局部變數。 如果 包含Mask ,則只會顯示符合指定模式的局部變數;如需詳細資訊,請參閱 字串通配符語法 。 |
typeName |
顯示指定數據類型的詳細資訊。 TypeName 會指定數據類型的名稱(例如 WSTRING)。 如果沒有類型名稱符合這個值,則會顯示任何相符的符號。 與大部分 DBH 命令參數不同, TypeName 區分大小寫。 |
elines [Source [Obj]] |
列舉符合指定來源遮罩和物件遮罩的所有來源行。 Source 會指定原始程式檔的名稱,包括絕對路徑和擴展名。 Obj 指定物件檔的名稱,包括相對路徑和擴展名。 Source 和 Obj 都可能包含各種通配符和規範;如需詳細資訊,請參閱字串通配符語法。 如果省略參數,這相當於使用星號 () 通配符。 如果您不想指定路徑資訊,請在檔名前面加上 </strong> 來表示通配符路徑。 |
索引值 |
顯示具有指定索引值之符號的詳細資訊。 |
範圍位址 範圍 [Module!]象徵 |
顯示指定符號之父代的詳細資訊。 符號可以透過位址或名稱來指定。 |
srch [mask=Symbol] [index=Index] [tag=Tag] [addr=Address] [globals] |
搜尋符合指定遮罩的所有符號。 符號 會指定符號名稱。 它不應該包含模組名稱,但可能包含通配符和規範;如需詳細資訊,請參閱 字串通配符語法 。 Index 會指定要做為搜尋父代之符號的十六進位位址。 標記 會指定必須符合符號的十六進位符號類型分類器 (SymTagXxx) 值。 Address 指定符號的位址。 如果 包含全域, 則只會顯示全域符號。 |
uw 位址 |
在指定的地址顯示函式的回溯資訊。 |
dtag |
顯示所有符號類型分類器 (SymTagXxx) 值。 |
etypes |
列舉所有數據類型。 |
dump |
顯示目標檔案中所有符號資訊的完整清單。 |
下表列出與符號伺服器和符號存放區相關的命令。
Command | 效果 |
---|---|
home [Path] |
設定 SymSrv 和 SrcSrv 針對預設下游存放區所使用的主目錄。 如果符號路徑包含使用預設下游存放區之符號伺服器的參考,則 主目錄的符號 子目錄將會用於下游存放區。 沒有參數, home 會顯示目前的主目錄。 |
srvpath 路徑 |
測試指定的路徑是否為符號存放區的路徑。 |
srvind 檔案 |
尋找對應至指定檔案的符號伺服器索引。 符號伺服器索引是以檔案內容為基礎的唯一值,不論它是否真的已新增至任何符號存放區。 檔案 應該指定所需檔案的檔名和絕對路徑。 |
fii 檔案 |
顯示指定之二進位檔及其相關聯檔案的符號伺服器索引。 |
getfile 檔案索引 |
顯示具有指定名稱和符號伺服器索引的檔案。 檔案 會指定所需檔案的名稱;這不應包含其路徑。 Index 指定所需檔案的符號伺服器索引。 DBH 會使用 SymFindFileInPath 例程來搜尋目前符號路徑下具有此名稱和此索引之檔案的樹狀結構。 |
sup path File1 File2 |
根據參數的值,將檔案儲存在符號存放區中。 路徑 會指定符號存放區的目錄路徑。 File1 和 File2 是用來建立差異值,接著用來判斷要儲存的檔案。 |
storeadd 檔案存放區 |
將指定的檔案加入指定的符號存放區。 Store 應該是符號存放區的根路徑。 |
下表列出適用於真實和虛構符號的 DBH 命令。
Command | 效果 |
---|---|
undec 名稱 |
顯示附加至指定符號名稱之裝飾的意義。 名稱 可以是任何字串;它不需要對應至目前載入的符號。 如果 Name 包含C++裝飾,則會顯示這些裝飾的意義。 |
新增名稱位址大小 |
將指定的虛數符號加入至 DBH 中載入的符號清單。 Name 會指定要加入的符號名稱、 Address 指定其十六進位位址,以及 以位元組為單位調整 其十六進位大小。 在稍後的 DBH 命令中,這會像任何其他符號一樣處理,直到 DBH 工作階段以結束或卸除,或直到使用 del 刪除虛構符號為止。不會改變實際的目標符號檔。 |
del Name del Address |
刪除先前使用 add 命令新增的虛數符號。 符號可以依名稱或位址指定。 這無法用來刪除實際符號。 |