1#!/bin/sh 2 3get_backtrace() { 4 local exe=$1 5 local core=$2 6 7 echo "ERROR detected, printing core-info ..." 8 9 gdb ${exe} \ 10 --core ${core} \ 11 --batch \ 12 --quiet \ 13 -ex "set width 0" \ 14 -ex "set height 0" \ 15 -ex "thread apply all bt full" \ 16 -ex "quit" 17 18 echo "HINT: Please send the above output to openlierox@az2000.de." 19} 20 21cd share/gamedir 22ulimit -c unlimited # activate core-files 23rm core* 2>/dev/null # remove old core-files 24 25bin="/dev/null" 26[ -x ../../$bin ] || bin=build/Xcode/build/Debug/OpenLieroX.app/Contents/MacOS/OpenLieroX 27[ -x ../../$bin ] || bin=build/Xcode/build/Release/OpenLieroX.app/Contents/MacOS/OpenLieroX 28[ -x ../../$bin ] || bin=bin/openlierox 29../../$bin "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" 30 31# game was exited, check for core-files (if crashed) 32[ -e core* ] && get_backtrace ../../bin/openlierox core* 33mv core* ../.. 2>/dev/null 34 35if [ -e /proc/sys/kernel/core_pattern ] && [ "$(cat /proc/sys/kernel/core_pattern)" != "" ]; then 36 corefile="$(sh -c "echo $(cat /proc/sys/kernel/core_pattern | sed -e "s/%e/openlierox/g" -e "s/%p/*/g" -e "s/%u/$(id -u)/g" -e "s/%t/*/g")")" 37 if [ -e "$corefile" ]; then 38 echo "found corefile $corefile" 39 get_backtrace ../../bin/openlierox "$corefile" 40 mv "$corefile" ../.. 41 fi 42fi 43