diff options
Diffstat (limited to 'tools')
| -rwxr-xr-x | tools/guest-diag/run_cycle.sh | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/tools/guest-diag/run_cycle.sh b/tools/guest-diag/run_cycle.sh index 173aca7..6786aa1 100755 --- a/tools/guest-diag/run_cycle.sh +++ b/tools/guest-diag/run_cycle.sh @@ -70,9 +70,18 @@ elif [ "$TRACE" = "gdb" ]; then sleep 2 done echo " cdt pid=$PID; arming ${GDBSCRIPT:-bp999v2.py} (999/719 exit, serial+file)" - timeout 40 "$VMEXEC" exec \ - "nohup sh -c \"gdb -p '$PID' -batch -x /tmp/${GDBSCRIPT:-bp999v2.py} < /dev/null 2>&1 | tee /tmp/bpwait.out > /dev/ttyS0\" >/dev/null 2>&1 & echo ARMED" \ - >/dev/null 2>&1 + ARMED=0 + for a in 1 2 3; do + if timeout 40 "$VMEXEC" exec \ + "test -f /tmp/${GDBSCRIPT:-bp999v2.py} && nohup sh -c \"gdb -p '$PID' -batch -x /tmp/${GDBSCRIPT:-bp999v2.py} < /dev/null 2>&1 | tee /tmp/bpwait.out >/dev/ttyS0\" >/dev/null 2>&1 & echo ARMED" \ + 2>/dev/null | grep -q ARMED; then + ARMED=1 + break + fi + echo " arm attempt $a failed; retrying" + sleep 8 + done + [ "$ARMED" = 1 ] || echo " WARN: gdb arm failed 3x" else timeout 30 "$VMEXEC" exec \ "rm -f /tmp/cdt.out; CDT_HOLD=$HOLD nohup /tmp/cdt >/tmp/cdt.out 2>&1 & echo STARTED" \ |
