#!/usr/bin/env bash # Runs docs/output/heap.hprof (produced by scripts/run.sh) through Eclipse Memory Analyzer's # headless batch report generator -- MemoryAnalyzer's -application org.eclipse.mat.api.parse, # invoked via the ParseHeapDump.sh wrapper MAT ships -- then re-extracts the Problem Suspect # summary into docs/output/02-mat-leak-suspects.txt. # # No GUI is shown, but MAT's SWT runtime still needs an X display even in this mode, hence # xvfb-run. Needs: MAT_HOME pointing at an extracted Memory Analyzer 1.17.0+ "rcp" distribution, # and xvfb-run on PATH (package "xvfb" on Debian/Ubuntu). set -eu SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" MODULE_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" ROOT_DIR="$(cd "$MODULE_DIR/.." && pwd)" cd "$MODULE_DIR" : "${MAT_HOME:?Set MAT_HOME to your Memory Analyzer install (e.g. /opt/mat)}" if [ ! -f docs/output/heap.hprof ]; then echo "docs/output/heap.hprof not found -- run scripts/run.sh first" >&2 exit 1 fi rm -f docs/output/heap_Leak_Suspects.zip xvfb-run -a "$MAT_HOME/ParseHeapDump.sh" "$MODULE_DIR/docs/output/heap.hprof" org.eclipse.mat.api:suspects python3 "$ROOT_DIR/scripts/extract-mat-summary.py" "$MODULE_DIR"