为什么我不能进入这条线?(涉及IT技术)

8
Math.Sign(int.MaxValue);

我按F11进入调试,但它直接跳过了。我想我已经设置好了所有与.NET框架源代码调试有关的选项。

编辑:如果您使用Visual Studio 2008 SP1和.NET 3.5 SP1可以成功步入此行,请问您的.pdb文件大小是多少?

编辑2:因为我可以成功步入System.Windows.Forms,所以我相当确定我的符号缓存已损坏,但每次我尝试重新加载符号时,它只会重新下载763KiB。

编辑3:是否可能是因为System.Math源代码根本没有发布/可用,所以我无法步入System.Math.Sign?


你正在使用VS 2008 Service Pack 1吗? - SLaks
是的,版本号为9.0.30729.1 SP。 - xofz
1
完全相同的问题:使用VS2008 SP1(9.0.307279.1),Vista SP2,我已经下载了最新的源代码组件(Dotnetfx_4016_VistaSP2)并且按照每个指示进行了操作。仍然像Sam一样,我可以进入所有内容(例如System.Web,2.0.50727.4016),但无法进入mscorlib(2.0.50727.4200)- 供参考,mscorlib的符号会反复从/download/symbols/mscorlib.pdb/4D0B2695F5144B4D8F24004284FE26191/mscorlib.pd_下载。 - Nariman
2个回答

8

你需要先加载 mscorlib.dll 的符号。

点击 调试(Debug), 窗口(Windows), 模块(Modules), 然后右键单击 mscorlib.dll 并点击加载符号。

然后再次尝试。提示,确保 .Net 源代码调试工作的最简单方法是尝试查看调用堆栈中方法的源代码。


我尝试了一下。 "符号状态"显示"符号已加载"。 .pdb文件大小为763KB,这是正确的大小吗? - xofz
1
不是这样的。 对于 .Net 3.5 SP0,我的 mscorlib.pdb 大小为 8,252 KB。尝试从符号缓存中删除 .pdb 文件,然后再试一次。 - SLaks
你如何删除并重新添加?我的机器上似乎没有mscorlib.pdb文件。我已经按照这些说明进行了操作,但没有帮助:http://msdn.microsoft.com/en-us/library/b8ttk8zy(v=vs.71).aspx(我正在尝试逐步执行我正在移植的VS2003项目)。 - Paul
VS2012,但以上或任何在线指南都没有成功。符号已加载到mscorlib.dll中,但仍无法工作。我从来没有在.NET框架源代码调试方面有过太多的好运气。这真的使得调试变得困难,特别是对于像MVC这样的框架,其中异常起源于管道之外的任何代码,并且异常不包含参数值等上下文信息。哦,太棒了,您在模型绑定期间未能转换某些属性,但我不知道是哪个。 - AaronLS

0

我没能进入某段代码,因为我没有意识到我在使用模拟对象。:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接