| # connect gdb to Valgrind gdbserver: |
| target remote | ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-mcsignopass |
| echo vgdb launched process attached\n |
| monitor v.set vgdb-error 999999 |
| # |
| # instruct gdb to not pass (i.e. ignore) these signals. |
| # |
| # Trap the below signals, we make them stop and then continue. |
| # For SIGSEGV, we make it continue a few times, till we pass it. |
| handle SIGSEGV nopass print stop |
| handle SIGBUS pass print stop |
| handle SIGFPE pass print stop |
| # |
| continue |
| # |
| # SIGTRAP : caused by invalid write error detected by memcheck |
| continue |
| # |
| # SIGSEGV can't be ignored, so it is re-signaled. We continue many times |
| # to be sure it is this signal which is re-signalled. Then will pass it. |
| continue |
| continue |
| continue |
| continue |
| continue |
| continue |
| continue |
| continue |
| continue |
| # |
| # Change handling so that we just see the 2nd SIGSEGV |
| handle SIGSEGV pass print nostop |
| continue |
| # |
| # SIGBUS will be shown and passed: |
| continue |
| # |
| # then SIGFPE is shown and passed: |
| continue |
| # |
| # program will exit |
| quit |