Valgrind Report Summarizer
Produce a minimal-token Markdown summary of Valgrind Memcheck reports by running the bundled parser script.
Workflow
- Identify the valgrind log file (uploaded or at a given path).
- If no log file exists yet and the user wants to run Valgrind, build with debug symbols first:
Then run Valgrind:cd python && MSCOMPRESS_DEBUG=1 uv sync --all-extras --reinstallcd python && valgrind --tool=memcheck --leak-check=full --log-file=leak-check.txt $(uv run which python) -m pytest
- If no log file exists yet and the user wants to run Valgrind, build with debug symbols first:
- Run the parser:
python3 /path/to/this/skill/scripts/parse_valgrind.py <input_file> <output.md> - Deliver the resulting
.mdfile to the user.
What the Script Produces
- Heap Overview — exit usage, total allocated, alloc/free delta
- Leak Summary — table with definitely/indirectly/possibly lost, still reachable, suppressed (with severity icons)
- Top 15 Leak Sources — grouped & deduplicated by call stack, sorted by bytes, showing only user-code frames (runtime/valgrind internals stripped)
Notes
- The parser strips
==PID==/--PID--prefixes automatically. - Stack frames from valgrind preload, libpython, CPython eval loop, pthread, and clone are filtered out to surface only the user's own code.
- Duplicate stacks (same top-4 frames) are merged with a
×Ncount. - Byte values are human-readable (KB/MB/GB).
- If the user wants deeper analysis or remediation advice beyond the summary, read the generated markdown and provide commentary.