summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag/wall2/gdbspin.sh
blob: 989e58431e8c176274d65e33db2b47ea2f484632 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
cd /tmp
(timeout 120 /tmp/vk_frame 1 64 64 5 /tmp 0 > /tmp/vk57.out 2>&1 &)
sleep 25
PID=$(pgrep -x vk_frame | head -1)
echo "pid=$PID"
BASE=$(grep 'eglcore' /proc/$PID/maps | head -1 | cut -d- -f1)
echo "base=$BASE"
SPIN=$(printf '0x%x' $((0x$BASE + 0xa10e90)))
echo "spin=$SPIN"
gdb -p $PID -batch \
  -ex "set pagination off" \
  -ex "break *$SPIN" \
  -ex "continue" \
  -ex "printf \"HIT rip=%p rdi=%p rsi=%p rdx=%p rbx=%p rbp=%p\n\", \$rip, \$rdi, \$rsi, \$rdx, \$rbx, \$rbp" \
  -ex "bt" \
  -ex "info registers r12 r13 r14 r15" \
  -ex "x/12i \$rip-24" \
  -ex "detach" 2>&1 | tail -40