[Mono-list] The state of heap-shot profiling in mono

Dan Liew dan at su-root.co.uk
Wed May 6 22:12:02 UTC 2015


I'd like to know what the current state of heap-shot profiling is in
mono (3.12.1). I've been trying to use the heap-shot-gui tool [1] and
it seems pretty broken. Here's what I've tried

## Instructions in heap-shot's README [2]

These tell me to use

$ mono --profile=heap-shot MyProgram.exe

This doesn't work mono reports

The 'heap-shot' profiler wasn't found in the main executable nor could
it be loaded from 'mono-profiler-heap-shot'.

Taking a look via strace. It seems mono tries to load
``/usr/lib/libmono-profiler-heap-shot.so`` which doesn't exist so I'm
guessing this doesn't work any more?

## Instructions on Mono's website [3]

These instructions tell me to use

$ mono --gc=sgen --profile=log:heapshot MyProgram.exe

This actually does generate a file (output.mlpd) but the heap-shot gui
cannot open it. It throws an exception.

System.Exception: Unknown sample event type: 48
  at MonoDevelop.Profiler.SampleEvent.Read
(HeapShot.Reader.LogFileReader reader, Byte exinfo) [0x00000] in
<filename unknown>:0
  at MonoDevelop.Profiler.Event.CreateEvent
(HeapShot.Reader.LogFileReader reader, EventType type, Byte
extendedInfo) [0x00000] in <filename unknown>:0
  at MonoDevelop.Profiler.Event.Read (HeapShot.Reader.LogFileReader
reader) [0x00000] in <filename unknown>:0
  at HeapShot.Reader.ObjectMapReader.ReadLogFile (IProgressListener
progress) [0x00000] in <filename unknown>:0
  at HeapShot.Reader.ObjectMapReader.Read (IProgressListener progress)
[0x00000] in <filename unknown>:0
ObjectMapFileReader.Read (): Completed in 0.016 s

I saw there was a pull request [3] that tries to adapt heap-shot to
the binary format outputted by 3.10.2, this seemed to work for 3.12.2
which I'm using. This seemed to fix my issue.

Is there a reason this pull request has been completely ignored?


[1] https://github.com/mono/heap-shot
[2] https://github.com/mono/heap-shot/blob/master/README
[3] http://www.mono-project.com/docs/debug+profile/profile/heapshot/
[4] https://github.com/mono/heap-shot/pull/3

More information about the Mono-list mailing list