]> git.lizzy.rs Git - dragonblocks_alpha.git/blob - src/debug.sh
98d38c4abc20803c924ba6d7c6d2197260cb05f5
[dragonblocks_alpha.git] / src / debug.sh
1 #! /bin/bash
2 if ! make -j$(nproc); then
3         exit 1
4 fi
5
6 DEBUG_DIR=/tmp/dragonblocks_alpha_debug_$$/
7 mkdir $DEBUG_DIR
8
9 echo "singleplayer" > $DEBUG_DIR/name
10
11 COMMON="set confirm off
12 handle SIGTERM nostop print pass
13 handle SIGPIPE nostop noprint pass
14 set height 0
15 set \$_exitcode=1
16 define hook-stop
17     if \$_exitcode == 0
18         quit
19     end
20 end
21 "
22
23 echo "$COMMON
24 run \"[::1]:4000\" < $DEBUG_DIR/name
25 " > $DEBUG_DIR/client_script
26
27 echo "$COMMON
28 set print thread-events off
29 run \"[::1]:4000\"
30 " > $DEBUG_DIR/server_script
31
32 kitty --detach -e bash -c "
33         echo \$\$ > $DEBUG_DIR/server_pid
34         exec gdb --command $DEBUG_DIR/server_script ./DragonblocksServer
35 "
36 sleep 0.5
37
38 gdb --command $DEBUG_DIR/client_script ./Dragonblocks
39
40 kill `cat $DEBUG_DIR/server_pid`
41
42 rm -rf $DEBUG_DIR