1

My symbol resolution on an x64 NGEN .NET 4.0 assembly it not working.

Details:

I have a .NET 4.0 command line assembly that I am compiling using Visual Studio with an x64 configuration. After I compile, I run NGEN (The 64 bit version) on it.

Having failed with XPERF analysing the callstacks (with -stackwalk profile) which won't resolve my symbols. I am now trying Perfmonitor from here: http://bcl.codeplex.com/releases/view/42784

I have done these steps and would have expected the call stacks to resolve:

  • Start the NGEN'ed x64 app
  • PerfMonitor Collect
  • Perfmonitor Merge
  • Perfmonitor Analyze

... Unfortunately, the stack traces don't work in PerfMonitor either.

I also tried running the app as a 32-bit - same issues. My symbols check out fine with symchk /v

I am at a loss on how to debug this broken stack trace functionality.

Thomas Kejser
  • 1,264
  • 1
  • 10
  • 30

2 Answers2

1

Not sure if I understand correctly, but you need to generate profilable NGEN 'assemblies'.

IOW: ngen install ass.dll /profile

leppie
  • 115,091
  • 17
  • 196
  • 297
0

You need the xperf Version from the Windows 8 SDK. This version supports .net. Start a trace with the new Performance Recorder UI and this tool generates PDBs for ngened .net components so that xperfview and WPA can decode the callstack.

magicandre1981
  • 27,895
  • 5
  • 86
  • 127