Shark provides no infrastructure for this. JIT code isn't listed
as a header by the dynamic linker so Shark doesn't even know where
to look for symbol information. The profile will show the
addresses of the executed JIT code, but there are a few potential
problems. If the JIT doesn't preserve the frame pointer, the
backtrace will be useless after the top frame. Even with that in
place, Shark collects symbol information at the end of the
sampling. This is to avoid the performance impact of doing symbol
lookups during the sampling. If the JIT reuses the same block of
memory for multiple JIT fragments, then Shark has no idea which
code fragment was JIT'd to a given address when the sample was
recorded. The JIT would need to keep track of every JIT code
fragment generated, the original source it came from, and when the
code fragment was generated.
Thats what mono provides.
The only way this would be possible would be to either:
- Have a code cache that never evicts. Provide a function to map
from JIT address to source address/information. Have us add
support for calling that function to Shark.
That would work for me :)
I think adding this would be great and extremely useful.
Best regards,
Joachim Ante
_______________________________________________
Do not post admin requests to the list. They will be ignored.
PerfOptimization-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/perfoptimization-dev/email@hidden