如何在clr.dll或mscoree.dll中调试

时间:2010-08-19 14:15:50

标签: .net visual-studio-2010 debug-symbols

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

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

我正在使用VS2010& .Net 4。

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

2 个答案:

答案 0 :(得分:2)

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

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

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

有关差异的更多解释:What is the difference between SSCLI 2.0 (ROTOR) and .NET?

答案 1 :(得分:1)

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