none
VMMap - virtual allocations, stacks, and instrumentation RRS feed

  • Question

  • We are doing memory optimization for a Mono application. VMMap is an excellent tool for this but there are a few limitations.

    Can an option to trace virtual allocations be added? Basically we need stack traces for Heap and Private Data. Right now only Heap shows traces.

    The stack traces stop at the first unknown address. In the case of a Mono application, this may be a managed code address. Having an option to show the full stack would fix this or even better a hook to call into a DLL to resolve an unknown address.

    Lastly, when you run a process through VMMap, the documentation says it "instruments" the exe to capture heap stack traces which works great. What exactly does it do to the exe to capture the trace? Does it use a windows api call, enable Event Tracing for Windows, modify the instructions to capture kernel.dll calls or something else?

    Thanks!

    Tuesday, April 14, 2020 1:53 AM

Answers

  • Thanks for the suggestions. Have added them to the backlog.

    For stack tracing I believe VMMAP uses detours

    MarkC(MSFT)

    Monday, April 27, 2020 3:01 PM

All replies

  • Thanks for the suggestions. Have added them to the backlog.

    For stack tracing I believe VMMAP uses detours

    MarkC(MSFT)

    Monday, April 27, 2020 3:01 PM
  • Thanks Mark. That's great info. Microsoft Detours looks very useful.
    We ended up using Windows Performance Analyzer and Event Tracing For Windows (ETW) to track allocations. We also modified our Mono application to emit JIT symbol mapping ETW events in order to get stack traces for managed code.

    VMMap is more specialized for memory analysis so we'll definitely check out the next version. 

    Tony


    Monday, May 18, 2020 11:17 PM