#!/usr/bin/env bash # # run_magic_valgrind.sh -- run magic under valgrind, straight from the build tree. # Generated by configure from scripts/run_magic_valgrind.sh.in. # # PURPOSE # Memory-check the just-built magic without `make install`. Stages # ${builddir}/CAD_DIR (symlinks) on first run, exports CAD_ROOT, then runs # valgrind on the self-contained "magicexec". # # USAGE # ./run_magic_valgrind.sh [magic-args...] # This checks the GUI binary (magicexec); Tk/X allocations make the output # noisy, so for real leak hunting prefer the batch binary (fewer moving parts): # valgrind --leak-check=full "$MAGIC_TCL/magicdnull" -dnull -nowrapper # # ENVIRONMENT OVERRIDES (all optional; each wins over the baked default) # CAD_ROOT reuse an alternate runtime tree instead of staging $builddir/CAD_DIR # MAGIC_WISH wish for the Tk console (default: the configure-matched wish) # WISH TCLSH wish/tclsh matching this build's Tcl/Tk (--with-tk / --with-tcl) # MAGIC_BUILDDIR MAGIC_SRCDIR build/source tops (default: baked-in absolutes) # Inherited values are sanity-checked; problems print as stderr warnings. # See magic_run_common.sh for the authoritative list and defaults. set -eu here="$(cd "$(dirname "$0")" && pwd)" . "$here/magic_run_common.sh" magic_require_built magic_stage exec valgrind --leak-check=full --error-exitcode=0 \ "$MAGIC_TCL/magicexec" -- "$@"