控制CLR的除錯

2022-09-01 14:54:15 字數 468 閱讀 2597

在除錯.net程式時,偵錯程式可以載入乙個輔助dll,稱為mscordacwks.dll,這個dll用於輸出託管**除錯過程中的各種資訊(例 如sos命令的輸出)。載入mscordacwks.dll的路徑取決於被載入到程序中的mscorwks.dll的路徑。在實時除錯(live debugging)中通常不存在問題,因為我們希望載入與已載入的mscorwks.dll相對應的mscordacwks.dll版本,但在事後除錯 (postmortem debugging)中則可能出現版本不匹配的情況。要想控制除錯行為,我們可以使用元命令cordll,並告訴偵錯程式載入 mscordacwks.dll的確切位置。例如,如果要指定乙個新路徑,那麼可以使用以下命令:

這樣便能告訴偵錯程式從資料夾c:\\x\\y\\z下載入mscordacwks.dll。如果要解除安裝mscordacwks.dll,可以使用-u開關。

在第8章中,我們將看到這個命令在除錯崩潰轉儲(crash dump)時帶來的潛在危險。

CLR控制欄位的布局

為了提高效能,clr能按照它所選擇的任何方式來排列型別的字段。為了向clr發出指示,需要在定義的類或者結構上應用system.runtime.interopservices.structlayoutattribute屬性。可以向這個屬性的構造器傳遞layoutkind.auto,讓clr自動排列字段...

CLR 除錯介面的架構與應用 1 背景資料

折騰 clr 除錯介面也有幾周了,可是在將 c 移植到 c 時總是有問題,直到剛剛才靈機一動有所突破,呵呵,總算可以開始寫這個系列文章了。d 雖然需要實際用到 clr 除錯介面的人可能非常少,但通過對 clr 除錯介面和 profiler 介面的了解,可以從多個截面加深對 clr 架構的認識,而且靈...

CLR的執行模型

公共語言執行時 common language runtime,clr 是乙個可由多種程式語言使用的 執行時 它負責在執行時管理 提供記憶體管理 異常處理 執行緒管理等核心服務,同時又確保 的安全性和準確性。原始碼的編譯過程如圖所示,使用支援clr的語言建立源 檔案,然後通過相應的編譯器對原始碼進行...