实际上,如果你的mscorlib.dll版本不是2.0.50727.4952的话,一切都很美好,网上很多很多的教程教你如何进入.Net Framework源代码调试。比如这个。
但是,当你的mscorlib.dll版本是2.0.50727.4952的话,恶梦来了。无论你如何修改配置,都会得到一个“没有可用于当前位置的源代码”的提示信息。经过我一个下午的努力搜索,对照了很多FAQ(比如这个)努力修改配置,最后的出结论就是微软提供的2.0.50727.4952版本的pdb文件有问题,其大小只有763KB,正常应该在8M多(上一个版本)。通过查看Wiki上的.Net版本历史记录,发现2.0.50727.4952版本是因为打了一个补丁KB983590,很自然的就想到把这个补丁卸载,让版本回滚到2.0.50727.4927。卸载后需要重启电脑。
重启电脑后打开VS2008,打开项目,F5启动调试程序,如果按照前面的配置,会自动下载mscorlib.dll的pdb文件。在我的电脑上,这个自动下载的pdb文件不管用,单步进入Console.WriteLine方法,仍然提示没有pdb文件,在堆栈窗口中手动加载pdb文件以后又再次下载了一次,不过这次在缓存文件夹中没有看到下载的影子。pdb下载完毕以后,由于是正确的pdb文件,立即就开始下载源代码了,就能进入Console.WriteLine方法了。真是千辛万苦啊。