使用調試程序擴充功能命令
使用調試程式擴充功能命令與調試程式命令的使用非常類似。 此命令會在 [調試程式命令] 視窗中輸入,在這個視窗中產生輸出,或是目標應用程式或目標計算機的變更。
實際的調試程式擴充命令是調試程式所呼叫 DLL 中的進入點。
除錯程式擴充功能是由下列語法叫用:
![module.]extension [arguments]
模組名稱不應該跟著擴展名.dll。 如果 模組 包含完整路徑,預設字串大小限制為 255 個字元。
如果模組尚未載入,則會使用對 LoadLibrary(module) 的呼叫,將載入調試程式。 在調試程式載入延伸模組連結庫之後,它會呼叫 GetProcAddress 函式,以在擴充模組中尋找延伸模組名稱。 延伸模組名稱會區分大小寫,而且必須和擴充模組的 .def 檔案中顯示的一樣輸入。 如果找到延伸模組位址,則會呼叫延伸模組。
搜尋順序
如果未指定模組名稱,調試程式將會搜尋載入的擴充模組以取得此匯出。
預設搜尋順序如下所示:
適用於所有操作系統和兩種模式的擴充模組:Dbghelp.dll 和 winext\ext.dll。
適用於所有模式但操作系統專屬的擴充模組。 針對 Windows XP 和更新版本的 Windows,這是 winxp\exts.dll。
可搭配所有作業系統使用的擴充模組,但為模式特定。 針對核心模式,這是 winext\kext.dll。 針對使用者模式,這是 winext\uext.dll。
操作系統專屬和模式專屬的擴充模組。 下表指定此課程模組。
使用者模式 | 核心模式 |
---|---|
winxp \ ntsdexts.dll | winxp \ kdexts.dll |
卸除擴充模組時,它會從搜尋鏈結中移除。 載入擴充模組時,它會新增至搜尋順序的開頭。 .setdll (設定預設擴充 DLL) 命令可用來將任何模塊升級至搜尋鏈結頂端。 您可以重複使用此命令,完全控制搜尋鏈結。
使用 .chain (List Debugger Extensions) 命令,以目前搜尋順序顯示所有已載入的擴充模塊清單。
如果您嘗試執行不在任何載入延伸模組模組中的擴充命令,您會收到「找不到匯出」錯誤訊息。