Symbol Resolution on .NET 4.0 NGEN x64 assembly not working

房东的猫 提交于 2019-12-23 03:57:14

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!