While perfcollect collect <tracename> goes to the effort to run crossgen /CreatePerfMap <dll>, the perfcollect view <tracename> fails to use the perfmap to resolve the NGEN symbols.
It seems to me that the PerfMap is a format which is unsupported by perf for mmap-ped files.
The simplest solution might be creating DWARF debug info for the NGEN image.
There may actually be code in coreclr to already support writing this. GDB debug support in CoreCLR may actually be writing a ELF debug info to memory. Not certain, but that is what I remember from enabling GDB debug on Arm64.
Other options/hacks.
Use the assembler to generate elf with debug info ?
Use binutils objcopy to generate elf from symbolsrec format ?
@brianrob
While
perfcollect collect <tracename>
goes to the effort to runcrossgen /CreatePerfMap <dll>
, theperfcollect view <tracename>
fails to use the perfmap to resolve the NGEN symbols.It seems to me that the PerfMap is a format which is unsupported by
perf
for mmap-ped files.The simplest solution might be creating DWARF debug info for the NGEN image.
There may actually be code in coreclr to already support writing this. GDB debug support in CoreCLR may actually be writing a ELF debug info to memory. Not certain, but that is what I remember from enabling GDB debug on Arm64.
Other options/hacks.