2

我正在尝试使用 Windows Azure 中的 Visual Studio Profiler 来分析我的 Windows Azure 应用程序。我按照http://msdn.microsoft.com/en-us/library/windowsazure/hh369930.aspx#BK_ProfilingCloudService上的说明进行操作,但是当我从找不到的实例下载分析报告时遇到了这个问题符号信息,我只得到函数名称的十六进制值。探查器输出以下错误:

警告 VSP2701:查找符号信息时找不到 F:\approot\MyApp.MyLib.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\system32\MSASN1.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\system32\slc.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\assembly\NativeImages_v4.0.30319_64\Microsoft.Build.Fra#\d172e68980f5b5930d83fc1bccfc07e3\Microsoft.Build.Framework.ni.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.Build.Framework\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.Build.Framework.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\assembly\NativeImages_v4.0.30319_64\System.Runtime.Cach#\5cf803aa1b791b9c6cf2d5167fe7d63b\System.Runtime.Caching.ni.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\assembly\NativeImages_v4.0.30319_64\System.Web.Applic#\fdc3ab5c1ff60542a20b6950f64eeb29\System.Web.ApplicationServices.ni.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.ApplicationServices\v4.0_4.0.0.0__31bf3856ad364e35\System.Web.ApplicationServices.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\assembly\NativeImages_v4.0.30319_64\System.DirectorySer#\770f4419204ad7db44842c6dbb86a336\System.DirectoryServices.Protocols.ni.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\Microsoft.Net\assembly\GAC_MSIL\System.DirectoryServices.Protocols\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.DirectoryServices.Protocols.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\assembly\NativeImages_v4.0.30319_64\System.DirectorySer#\7f7a77e6e63a5169626f3c0c8c7d72a8\System.DirectoryServices.ni.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\Microsoft.Net\assembly\GAC_MSIL\System.DirectoryServices\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.DirectoryServices.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\assembly\NativeImages_v4.0.30319_64\System.Drawing\741fda6371303be2c86d23b8dcf88cc3\System.Drawing.ni.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\assembly\NativeImages_v4.0.30319_64\System.Data.SqlXml\2d6a784738e5d67e70feb68f0c53a3d8\System.Data.SqlXml.ni.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.SqlXml\v4.0_4.0.0.0__b77a5c561934e089\System.Data.SqlXml.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\assembly\NativeImages_v4.0.30319_64\System.Security\b7ad9cb6010b93a853dd647d9e1f3857\System.Security.ni.dll。
警告 VSP2701:查找符号信息时找不到 D:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Security\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Security.dll。

等等。查看路径,这显然是在实际 Azure 实例上正在寻找的路径(我已经通过 RDP 进行了足够多的时间来识别 D:\windows 和 F:\approot 的含义)。但我正在我自己的机器上查看此性能报告。那么如何告诉探查器使用我机器的设置而不是 Azure 实例的设置来查找符号呢?

作为记录,我正在按照链接页面中的说明进行操作,并且我已经广泛搜索了这一点,但一无所获。并不是说那里什么都没有,但是我正在按照分析博客等中的说明进行操作,但仍然出现错误。我在MSDN 论坛上问了这个问题,微软代表基本上告诉我,如果我按照说明进行操作,它肯定会起作用。

4

1 回答 1

1

抱歉我没有早点看到这个。基本上问题是,当您的应用程序被分析时,许多二进制文件都会被生成。因此,如果没有正确的 pdb,系统将无法解释函数地址,因此您会看到 Hex。您将需要在存在 ngenbinary 的同一台机器上生成 ngen pdb(请参阅http://blogs.msdn.com/b/visualstudioalm/archive/2012/12/10/creating-ngen-pdbs-for-profiling-报告.aspx)。这应该会处理大多数列为 *.ni.dll 的二进制文件。对于您自己的应用程序,在 Visual Studio 中设置符号位置应该足以为您自己的应用程序定位符号。希望这可以帮助

于 2013-04-14T08:26:37.057 回答