mirror of
https://github.com/labwc/labwc.git
synced 2025-10-29 05:40:24 -04:00
51 lines
1 KiB
Bash
Executable file
51 lines
1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
if ! test -x "$1/labwc"; then
|
|
echo "$1/labwc not found"
|
|
exit 1
|
|
fi
|
|
|
|
args=(
|
|
"$1/labwc"
|
|
-C scripts/ci
|
|
-d
|
|
)
|
|
|
|
export XDG_RUNTIME_DIR=$(mktemp -d)
|
|
export WLR_BACKENDS=headless
|
|
|
|
echo "Starting ${args[@]}"
|
|
output=$("${args[@]}" 2>&1)
|
|
ret=$?
|
|
|
|
if test $ret -ge 128; then
|
|
# Not using -Db_sanitize=address,undefined
|
|
# because it slows down the usual execution
|
|
# way too much and spams pages over pages
|
|
# of irrelevant memory-still-in-use logs
|
|
# for external libraries.
|
|
#
|
|
# Not using coredumps either because they
|
|
# are a pain to setup on GH actions and
|
|
# just running labwc again is a lot faster
|
|
# anyway.
|
|
|
|
echo
|
|
echo "labwc crashed, restarting under gdb"
|
|
echo
|
|
gdb --batch \
|
|
-ex run \
|
|
-ex 'bt full' \
|
|
-ex 'echo \n' \
|
|
-ex 'echo "Local vars:\n' \
|
|
-ex 'info locals' \
|
|
-ex 'echo \n' \
|
|
-ex 'set listsize 50' \
|
|
-ex list \
|
|
--args "${args[@]}"
|
|
else
|
|
echo "$output"
|
|
fi
|
|
|
|
echo "labwc terminated with return code $ret"
|
|
exit $ret
|