sewardj | 3b29048 | 2011-05-06 21:02:55 +0000 | [diff] [blame] | 1 | # connect gdb to Valgrind gdbserver: |
| 2 | target remote | ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-mcsignopass |
sewardj | eefeeb7 | 2011-05-10 11:01:07 +0000 | [diff] [blame] | 3 | echo vgdb launched process attached\n |
sewardj | 30b3eca | 2011-06-28 08:20:39 +0000 | [diff] [blame] | 4 | monitor v.set vgdb-error 999999 |
sewardj | 3b29048 | 2011-05-06 21:02:55 +0000 | [diff] [blame] | 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. |
| 10 | handle SIGSEGV nopass print stop |
| 11 | handle SIGBUS pass print stop |
| 12 | handle SIGFPE pass print stop |
| 13 | # |
| 14 | continue |
| 15 | # |
| 16 | # SIGTRAP : caused by invalid write error detected by memcheck |
| 17 | continue |
| 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. |
| 21 | continue |
| 22 | continue |
| 23 | continue |
| 24 | continue |
| 25 | continue |
| 26 | continue |
| 27 | continue |
| 28 | continue |
| 29 | continue |
| 30 | # |
| 31 | # Change handling so that we just see the 2nd SIGSEGV |
| 32 | handle SIGSEGV pass print nostop |
| 33 | continue |
| 34 | # |
| 35 | # SIGBUS will be shown and passed: |
| 36 | continue |
| 37 | # |
| 38 | # then SIGFPE is shown and passed: |
| 39 | continue |
| 40 | # |
| 41 | # program will exit |
| 42 | quit |