我遵循these步骤,能够在.Net框架代码中进行调试。这适用于框架的某些部分(例如System.Drawing.dll),但不适用于其他部分(clr.dll,mscoree.dll,...)。
这对我来说有点奇怪,因为这些dll中的代码是由Microsoft发布的(至少是我在调用堆栈中看到的部分)。
我正在使用VS2010& .Net 4。
我做错了什么,还是微软没有发布正确的pdb文件?
答案 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,但这更复杂......