nim_callgrind

A small utility to demangle Nim symbols from callgrind files.

Usage

Run your (Nim) program with something like this:

valgrind --tool=callgrind executable

Then generate a demangled output file with:

python nim_callgrind.py INPUT_FILE OUTPUT_FILE

Features

  • Tries to detect Nim procedures, ignores everything else.
  • Detects passed-by-value and passed-by-reference types.
  • Extracts proper function names.
  • Extracts module names (added between [] afterwards).

TODO

  • [ ] Port the utility Nim once stabilized :)
  • [ ] Add support for missing Nim types.
  • [ ] Figure out better demangling, if possible.
  • [ ] Test with more callgrind files.

Example

example

GitHub

https://github.com/kraptor/nim_callgrind