3

我按照这些步骤能够在 .Net 框架代码中进行调试。这适用于框架的某些部分(例如 System.Drawing.dll),但不适用于其他部分(clr.dll、mscoree.dll、...)。

这对我来说似乎有点奇怪,因为这些 dll 中的代码是由 Microsoft 发布的(至少是我在调用堆栈中看到的部分)。

我正在使用 VS2010 和 .Net 4。

是我做错了什么,还是微软没有发布正确的 pdb 文件?

4

2 回答 2

2

Microsoft 发布了整个公共语言运行时的共享源代码实现,包括 mscoree.dll,但这并不是真正的 .NET 框架的源代码。

另一方面,您获得的 System.Drawing.dll 等的源代码是 .NET 框架的真正源代码,但您无法通过这种方式获得运行时代码。

这是 SSCLI 的下载,也称为转子:http ://www.microsoft.com/downloads/details.aspx?FamilyId=8C09FD61-3F26-4555-AE17-3121B4F51D4D&displaylang=en

关于差异的更多解释:SSCLI 2.0 (ROTOR) 和 .NET 有什么区别?

于 2010-08-19T14:19:37.170 回答
1

我认为 VS 允许您仅调试框架的托管库。如果你真的需要调试 CLR 的非托管(本机)代码,你应该使用 WinDBG,但这要复杂得多......

于 2010-08-19T14:24:45.380 回答