.reload (重載模組)
.reload 命令會刪除指定模組的所有符號資訊,並視需要重載這些符號。 在某些情況下,此命令也會重載或卸除模組本身。
.reload [Options] [Module[=Address[,Size[,Timestamp]]]]
.reload -?
參數
選項 下列任一選項:
/d
重載調試程式模組清單中的所有模組。 (當您省略所有參數時,這種情況是在使用者模式偵錯期間的預設。
/f
強制調試程式立即載入符號。 此參數會 覆寫延遲符號載入。 如需詳細資訊,請參閱接下來的<備註>一節。
/我
忽略 .pdb 檔案版本中的不符。 (如果您不包含此參數,調試程式不會載入不相符的符號檔。當您使用 /i 時, 也會使用 /f ,即使您未明確指定它也一樣。
/l
列出模組,但不會重載其符號。 (在核心模式中,此參數提供類似的 輸出lm 命令。)
/n
僅重載核心符號。 此參數不會重載任何用戶符號。 (您只能在內核模式偵錯期間使用此選項。
/o
強制覆寫符號伺服器下游存放區中的快取檔案。 當您使用此旗標時,也應該包含 /f。 根據預設,絕不會覆寫下游存放區檔案。
因為符號伺服器會針對二進位檔的每個不同組建的符號使用不同的檔名,除非您認為下游存放區已損毀,否則您不需要使用此選項。
/s
重載系統模組映像清單中的所有模組。 (當您省略所有參數時,這種情況是內核模式偵錯期間的預設值。
如果您在執行使用者模式偵錯時依名稱載入個別的系統模組,則必須包含 /s。
/u
卸除指定的模組及其所有符號。 不論完整路徑為何,調試程式都會卸除名稱符合 Module的任何已載入模組。 也會搜尋影像名稱。 如需詳細資訊,請參閱下列一節中的附註。
/unl
根據已卸除模組清單中的影像資訊重載符號。
/使用者
僅重載用戶符號。 (您只能在內核模式偵錯期間使用此選項。
/v
開啟詳細資訊模式。
/w
將 Module 視為常值字串。 此處理可防止調試程序展開通配符。
模組
指定要在主電腦上重載符號的目標系統上的映像名稱。 模組 應包含檔案的名稱和擴展名。 除非您使用 /w 選項, 否則Module 可能包含各種通配符和規範。 如需語法的詳細資訊,請參閱 字串通配符語法。 如果您省略 Module,.reload 命令的行為取決於您所使用的選項。
位址
指定模組的基位址。 通常,只有當影像標頭已損毀或分頁時,您才必須有這個位址。
大小
指定模組映像的大小。 在許多情況下,調試程式知道模組的正確大小。 當調試程式不知道正確的大小時,您應該指定 Size。 這個大小可以是實際的模組大小或較大的數位,但大小不應該是較小的數位。 通常,只有當影像標頭已損毀或分頁時,您才必須有這個大小。
時間戳
指定模組映像的時間戳。 在許多情況下,調試程式會知道模組的正確時間戳。 當調試程式不知道時間戳時,您應該指定 Timestamp。 通常,只有當影像標頭已損毀或分頁時,您才必須有這個時間戳。
注意 位址、大小和時間戳參數之間不得有空格。
-?
顯示此命令的簡短說明文字。
Environment
項目 | 說明 |
---|---|
模式 | 使用者模式、核心模式 |
目標 | 即時、損毀傾印 |
平台 | 全部 |
其他資訊
如需延遲符號載入的詳細資訊,請參閱 延後符號載入。 如需其他符號選項的詳細資訊,請參閱 設定符號選項。
備註
.reload 命令不會讀取符號資訊。 相反地,此命令可讓調試程式知道符號檔可能已變更,或應該將新的模組新增至模塊清單。 此命令會讓調試程式修改其模組清單,並刪除其指定模組的符號資訊。 在需要資訊之前,不會從個別 .pdb 檔案讀取實際的符號資訊。 (這種載入稱為 延遲符號載入 或 延後符號載入。)
您可以使用 /f 選項或發出 ld (載入符號) 命令,強制載入符號。
如果系統停止回應(也就是當機),則 .reload 命令很有用,這可能會導致您失去正在偵錯之目標計算機的符號。 如果您已更新符號樹狀結構,此命令也很有用。
如果影像標頭因為某些原因而不正確,例如要卸除或分頁的模組,您可以使用 /unl 自變數正確載入符號,或同時指定 Address 和 Size。
.reload /u 命令會執行廣泛的搜尋。 調試程式會先嘗試比 對Module 與確切的模組名稱,不論路徑為何。 如果調試程式找不到此相符專案, 則 Module 會被視為已載入映像的名稱。 例如,如果位於記憶體中的 HAL 具有模組名稱halacpi.dll,則下列兩個命令都會卸除其符號。
kd> .reload /u halacpi.dll
kd> .reload /u hal
如果您要執行使用者模式偵錯,而且想要載入不屬於目標應用程式模組清單的模組,則必須包含 /s 選項,如下列範例所示。
0:000> .reload /u ntdll.dll
Unloaded ntdll.dll
0:000> .reload /s /f ntdll.dll