问题
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.
回答1:
Not sure if I understand correctly, but you need to generate profilable NGEN 'assemblies'.
IOW: ngen install ass.dll /profile
回答2:
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.
来源:https://stackoverflow.com/questions/11509067/symbol-resolution-on-net-4-0-ngen-x64-assembly-not-working