33 lines
		
	
	
		
			892 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			892 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
GDB_FILE="$2"
 | 
						|
CONFIG="$3"
 | 
						|
SYSLOG="$4"
 | 
						|
SYSERR="$5"
 | 
						|
GDB_ENABLED="$6"
 | 
						|
CRASHES_PATH="$7"
 | 
						|
 | 
						|
if [ $GDB_ENABLED -eq 1 ]; then
 | 
						|
    echo "set logging file "$CRASHES_PATH"/gdb-$(date +%Y-%m-%d-%H-%M-%S).txt" > "$GDB_FILE"
 | 
						|
    echo "set logging on" >> "$GDB_FILE"
 | 
						|
    echo "set debug timestamp" >> "$GDB_FILE"
 | 
						|
    echo "run -c $3" >> "$GDB_FILE"
 | 
						|
    echo "bt" >> "$GDB_FILE"
 | 
						|
    echo "bt full" >> "$GDB_FILE"
 | 
						|
    echo "info thread" >> "$GDB_FILE"
 | 
						|
    echo "thread apply all backtrace full" >> "$GDB_FILE"
 | 
						|
 | 
						|
    [ ! -f "$SYSLOG" ] && touch "$SYSLOG"
 | 
						|
    [ ! -f "$SYSERR" ] && touch "$SYSERR"
 | 
						|
 | 
						|
    if [ $WITH_CONSOLE -eq 0 ]; then
 | 
						|
        gdb -x $GDB_FILE --batch $1 >> "$SYSLOG" 2>> "$SYSERR"
 | 
						|
    else
 | 
						|
        echo "> Console enabled"
 | 
						|
        gdb -x $GDB_FILE --batch $1   > >(tee ${SYSLOG}) 2> >(tee ${SYSERR} >&2)
 | 
						|
    fi
 | 
						|
 | 
						|
elif [ $GDB_ENABLED -eq 0 ]; then
 | 
						|
    "./$1" -c "$CONFIG"
 | 
						|
fi
 |