1# connect gdb to Valgrind gdbserver:
2target remote | ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-mcsignopass
3echo vgdb launched process attached\n
4monitor v.set vgdb-error 999999
5#
6# instruct gdb to not pass (i.e. ignore) these signals.
7#
8# Trap the below signals, we make them stop and then continue.
9# For SIGSEGV, we make it continue a few times, till we pass it.
10handle SIGSEGV nopass print stop
11handle SIGBUS  pass print stop
12handle SIGFPE  pass print stop
13#
14continue
15#
16# SIGTRAP : caused by invalid write error detected by memcheck
17continue
18#
19# SIGSEGV can't be ignored, so it is re-signaled. We continue many times
20# to be sure it is this signal which is re-signalled. Then will pass it.
21continue
22continue
23continue
24continue
25continue
26continue
27continue
28continue
29continue
30#
31# Change handling so that we just see the 2nd SIGSEGV
32handle SIGSEGV pass print nostop
33continue
34#
35# SIGBUS will be shown and passed:
36continue
37#
38# then SIGFPE is shown and passed:
39continue
40#
41# program will exit
42quit
43