Mike
Mike

Reputation: 834

Visual Studio profiler not finding symbols when I run it in Azure

I am trying to profile my Windows Azure application using the Visual Studio Profiler in Windows Azure. I followed the instructions at http://msdn.microsoft.com/en-us/library/windowsazure/hh369930.aspx#BK_ProfilingCloudService, but I run into this problem where when I download the profiling report from an instance it can't find the symbol information and I get nothing but hex values for the function names. The profiler outputs the following errors:

Warning VSP2701: F:\approot\MyApp.MyLib.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\system32\MSASN1.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\system32\slc.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\Microsoft.Build.Fra#\d172e68980f5b5930d83fc1bccfc07e3\Microsoft.Build.Framework.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.Build.Framework\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.Build.Framework.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\System.Runtime.Cach#\5cf803aa1b791b9c6cf2d5167fe7d63b\System.Runtime.Caching.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\System.Web.Applicat#\fdc3ab5c1ff60542a20b6950f64eeb29\System.Web.ApplicationServices.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.ApplicationServices\v4.0_4.0.0.0__31bf3856ad364e35\System.Web.ApplicationServices.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\System.DirectorySer#\770f4419204ad7db44842c6dbb86a336\System.DirectoryServices.Protocols.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\Microsoft.Net\assembly\GAC_MSIL\System.DirectoryServices.Protocols\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.DirectoryServices.Protocols.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\System.DirectorySer#\7f7a77e6e63a5169626f3c0c8c7d72a8\System.DirectoryServices.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\Microsoft.Net\assembly\GAC_MSIL\System.DirectoryServices\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.DirectoryServices.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\System.Drawing\741fda6371303be2c86d23b8dcf88cc3\System.Drawing.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\System.Data.SqlXml\2d6a784738e5d67e70feb68f0c53a3d8\System.Data.SqlXml.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.SqlXml\v4.0_4.0.0.0__b77a5c561934e089\System.Data.SqlXml.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\System.Security\b7ad9cb6010b93a853dd647d9e1f3857\System.Security.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Security\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Security.dll could not be found when looking for symbol information.

And so on. Looking at the paths, this is clearly the path that is being looked for on the actual Azure instance (I've been in via RDP enough times to recognize what D:\windows and F:\approot means). But I'm viewing this performance report on my own machine. So how can I tell the profiler to look for symbols using MY machine's settings, and not the Azure instance's settings?

For the record, I AM following the instructions in the linked pages, and I have googled this extensively and found nothing. Not to say there's nothing out there, but I'm following the instructions in the profiling blogs and such and still getting the errors. I asked this question on the MSDN forums and a Microsoft rep basically told me that if I followed the instructions it would definitely work.

Upvotes: 2

Views: 1431

Answers (1)

Andre Hamilton
Andre Hamilton

Reputation: 246

Sorry I didn't see this earlier. Basically the issue is that when your app is profiled, many of the binaries are ngened. Because of this, the system cannot interpret the function addresses without the correct pdb hence you see Hex. You will need to generate the ngen pdb on the same machine where the ngenbinary exist (see http://blogs.msdn.com/b/visualstudioalm/archive/2012/12/10/creating-ngen-pdbs-for-profiling-reports.aspx ). That should take care of most of the binaries listed as *.ni.dll . As for your own application, setting the Symbol location in Visual Studio should be sufficient to locate the symbols for your own application. Hope this helps

Upvotes: 1

Related Questions