magic/scripts/run_magic_valgrind.sh.in

33 lines
1.4 KiB
Bash

#!/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" -- "$@"