1

我在 VS2008 中有以下代码行。

    VirtualPathData virtualPathData = 
        RouteTable.Routes.GetVirtualPath(_viewContext.RequestContext, 
        "Home", 
        pageLinkValueDictionary);

我想调试这个GetVirtualpath(..)方法..看看它想做什么。

我假设我需要从 MS 符号服务器中获取符号。

我所做的是

  • 关闭仅启用我的代码
  • 打开启用源服务器支持
  • 调试时显示模块窗口(手动加载正确的模块)

在调试模式下编译,在该行设置断点并调试运行。当我上线时,我System.Web.Routing(..)MS Symbol server手动加载。这有效(pdb 在本地下载),当我进入这一行时,我转到了一些 Dissassemler 代码:(

谁能看到我做错了什么?

4

4 回答 4

3

下载符号文件并不意味着可以使用源,pdb 也需要进行源索引。

来自Scott Guthrie 的公告

我们将首先提供 .NET 基类库(System、System.IO、System.Collections、System.Configuration、System.Threading、System.Net、System.Security、 System.Runtime、System.Text 等)、ASP.NET (System.Web)、Windows 窗体 (System.Windows.Forms)、ADO.NET (System.Data)、XML (System.Xml) 和 WPF (System 。视窗)。然后,我们将在未来几个月添加更多库(包括 WCF、Workflow 和 LINQ)。源代码将在 Microsoft 参考许可证 (MS-RL) 下发布。

似乎 System.Web.Routing 不包括在这里。

但是,您可以下载 MVC Source,然后您应该能够针对该源使用下载的 pdb。

于 2009-05-18T07:57:38.063 回答
1

我看到有人因为这样说而被修改了,但是......

您似乎无法获得正在发生的事情的源代码级别的视图,但如果您真的需要一个关于为什么某些事情可能无法正常工作的答案(并且 StackOverflow 无济于事),请使用Reflector.NET从编译的程序集(dll 或 exe)是一个不错的选择。对于任何有经验的 .NET 开发人员来说,该工具都非常易于使用,并且可以对正在发生的事情提供一些非常好的见解。

我们中的许多在 .NET 前沿工作的人都需要使用它,因为通常没有其他快速方法,而且对于那些没有 MVP 或 Microsoft 端连接的人来说,它通常是获得“内幕消息”的唯一方法。

于 2009-05-18T19:49:58.940 回答
0

我有点惊讶它为此下载了一个符号文件;上次我查看时,只有框架的一小部分(主要是 2.0)的符号。您目前对此代码有疑问吗?如果是这样,请发布异常/意外行为的详细信息。如果您只是好奇,那么要么 a:阅读文档,要么 b:也许有一个带有反射器的窥探器(警告:“ IANAL ”)。

于 2009-02-15T08:26:39.880 回答
-3

看起来你在谈论 .NET,所以它实际上是你看到的 IL 字节码。我认为 Microsoft 不会发布带有 .NET 源代码的符号,因此 VS 无法帮助您。

使用 .NET Reflector 检查函数的作用。

于 2009-02-15T06:09:49.610 回答