2017-07-25 222 views
1

我可以成功執行其他自定義dll(我自己創建的.net程序集)的逆向工程,但我無法通過mscorlib.dll執行相同步驟。如何在Visual Studio 2015中調試Mscorlib.dll

我試圖使用jetbrains dotpeek生成pdb mscorlib.dll

我的visual studio調試選項已設置爲包含該pdb的文件夾。

我試圖把mscorlib.ini文件來設置代碼優化到不行,像這樣:

[.NET Framework Debugging Control] 
GenerateTrackingInfo=1 
AllowOptimize=0 

,並把該文件在哪裏臨時的dll被加載(如

同一位置

C:\ Windows \ Microsoft.NET \ assembly \ GAC_64 \ mscorlib \ v4.0_4.0.0.0__b77a5c561934e089)。

當我將VS附加到進程時,我可以看到Visual Studio的模塊中的Optimized值仍然爲'是'。

欣賞是否有人可以指導我如何在將VS附加到使用mscorlib.dll的進程時調試mscorlib.dll的分步說明。

謝謝。

+0

我相信mscorlib程序是ngen'ed。因此,AllowOptimize值在「運行時」期間不起作用。它必須在ngen.exe運行期間指定(請參閱[本文]的第一個「註釋」(https://docs.microsoft.com/en-us/dotnet/framework/debug-trace-profile/making -an-圖像更易於調試))。 –

+0

@Alexander Ng,我們經常在獲取.NET庫的參考源後進行調試:https://stackoverflow.com/questions/6061676/debugging-mscorlib-in-net-4-0,看起來你只是加載發佈版本中的dll文件。 –

回答

1

mscorlib.dll is ngen'd。您還需要設置COMPLUS_ZapDisable環境變量來防止CLR加載ngen'd組件:

set COMPLUS_ZapDisable=1

相關問題