Merge branch 'master' of chiark:public-git/adns
[adns] / regress / gdbwrap
CommitLineData
2f440255
IJ
1#!/bin/sh
2set -e
3
4# For example, put this in x.gdb
5# break adns__revparse_label
6# break adns__revparse_done
7# run
8# and then
9# ADNS_TEST_DEBUG='./gdbwrap -n x.gdb' ./r1test tcpptr
10#
11# gdbwrap can be passed arguments like
12# *.gdb passed to gdb with -x
13# -n exit with exit status 5 which makes r1test think "skipped"
14#
15# other arguments are taken to be the program name provided by
16# whatever has been told to use gdbwrap (eg r1test)
17
18while true; do
19 case "$1" in
20 *.gdb) xgdb="-x $1"; shift;;
21 -n) x5='exit 5'; shift;;
22 *) break;;
23 esac
24done
25
26exe=$1; shift
27
28exec 5<&0 6>&1 7>&2
29exec 0<>/dev/tty 1>&0 2>&0
30
31set +e
32ex="set args <&5 >&6 2>&7"
33for a in "$@"; do
34 ex="$ex '$a'"
35done
36gdb --return-child-result -ex "$ex" $xgdb $exe
37$x5