【问题标题】:How to Debug Mscorlib.dll in Visual Studio 2015如何在 Visual Studio 2015 中调试 Mscorlib.dll
【发布时间】:2017-07-25 08:56:36
【问题描述】:

我可以成功地对其他自定义 dll(我自己创建的 .net 程序集)进行逆向工程,但我无法使用相同的步骤在 mscorlib.dll 上进行。

我尝试使用 jetbrains dotpeek 生成 mscorlib.dll 的 pdb。

我的 Visual Studio 调试选项已设置为包含该 pdb 的文件夹。

我尝试把mscorlib.ini文件中的代码优化设置为No,像这样:

[.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 值仍然是“是”。

如果有人可以指导我在使用 mscorlib.dll 将 VS 附加到进程时如何调试 mscorlib.dll 的分步说明。

谢谢。

【问题讨论】:

  • 我相信 mscorlib 已被更新。因此 AllowOptimize 值在“运行时”期间无效。它必须在 ngen.exe 运行期间指定(参见this article 上的第一个“注释”)。
  • @Alexander Ng,我们经常在获得.NET库的参考源后调试它:stackoverflow.com/questions/6061676/…,您似乎只是加载了发布版本中的dll文件。

标签: .net visual-studio debugging


【解决方案1】:

mscorlib.dll 是ngen'd。您还需要设置 COMPLUS_ZapDisable 环境变量以防止 CLR 加载 ngen 的程序集:

set COMPLUS_ZapDisable=1

【讨论】:

    猜你喜欢
    • 2017-10-10
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多