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-mcvabits |
sewardj | eefeeb7 | 2011-05-10 11:01:07 +0000 | [diff] [blame^] | 3 | echo vgdb launched process attached\n |
sewardj | 3b29048 | 2011-05-06 21:02:55 +0000 | [diff] [blame] | 4 | monitor vg.set vgdb-error 999999 |
| 5 | # |
| 6 | # |
| 7 | # insert break: |
| 8 | break breakme |
| 9 | # |
| 10 | # continue till //1break: |
| 11 | continue |
| 12 | # |
| 13 | # up to main: |
| 14 | up |
| 15 | # |
| 16 | # print local string variables: |
| 17 | print main_name |
| 18 | print undefined |
| 19 | # save address of undefined |
| 20 | set $0xundefined = &undefined |
| 21 | # |
| 22 | # Verif A-bits, V-bits, Get V-bits: A,V,G [0..9] |
| 23 | eval "monitor mc.check_memory addressable 0x%x 10", $0xundefined |
| 24 | eval "monitor mc.check_memory defined 0x%x 10", $0xundefined |
| 25 | eval "monitor mc.get_vbits 0x%x 10", $0xundefined |
| 26 | # |
| 27 | # continue till //2break: |
| 28 | continue |
| 29 | # |
| 30 | # A,V,G [0..9] after the undefinition of some bytes by executable: |
| 31 | eval "monitor mc.check_memory addressable 0x%x 10", $0xundefined |
| 32 | eval "monitor mc.check_memory defined 0x%x 10", $0xundefined |
| 33 | eval "monitor mc.get_vbits 0x%x 10", $0xundefined |
| 34 | # |
| 35 | # Redefine [2..4] |
| 36 | set $0xundefined_2 = (char*)$0xundefined + 2 |
| 37 | eval "monitor mc.make_memory defined 0x%x 3", $0xundefined_2 |
| 38 | # A,V,G |
| 39 | eval "monitor mc.check_memory addressable 0x%x 10", $0xundefined |
| 40 | eval "monitor mc.check_memory defined 0x%x 10", $0xundefined |
| 41 | eval "monitor mc.get_vbits 0x%x 10", $0xundefined |
| 42 | # |
| 43 | # Undefine [2..5] |
| 44 | eval "monitor mc.make_memory undefined 0x%x 4", $0xundefined_2 |
| 45 | # A,V,G [0..9] |
| 46 | eval "monitor mc.check_memory addressable 0x%x 10", $0xundefined |
| 47 | eval "monitor mc.check_memory defined 0x%x 10", $0xundefined |
| 48 | eval "monitor mc.get_vbits 0x%x 10", $0xundefined |
| 49 | # |
| 50 | # noaccess [2..3] |
| 51 | eval "monitor mc.make_memory noaccess 0x%x 2", $0xundefined_2 |
| 52 | # A,V,G [0..1] |
| 53 | eval "monitor mc.check_memory addressable 0x%x 2", $0xundefined |
| 54 | eval "monitor mc.check_memory defined 0x%x 2", $0xundefined |
| 55 | eval "monitor mc.get_vbits 0x%x 2", $0xundefined |
| 56 | # A,V,G [2..3] |
| 57 | eval "monitor mc.check_memory addressable 0x%x 2", $0xundefined_2 |
| 58 | eval "monitor mc.check_memory defined 0x%x 2", $0xundefined_2 |
| 59 | eval "monitor mc.get_vbits 0x%x 2", $0xundefined_2 |
| 60 | # A,V,G [4..9] |
| 61 | set $0xundefined_4 = (char*) $0xundefined_2 + 2 |
| 62 | eval "monitor mc.check_memory addressable 0x%x 6", $0xundefined_4 |
| 63 | eval "monitor mc.check_memory defined 0x%x 6", $0xundefined_4 |
| 64 | eval "monitor mc.get_vbits 0x%x 6", $0xundefined_4 |
| 65 | # |
| 66 | # ifaddressabledefined undefined[0..9] |
| 67 | eval "monitor mc.make_memory ifaddressabledefined 0x%x 10", $0xundefined |
| 68 | # A,V,G |
| 69 | eval "monitor mc.check_memory addressable 0x%x 10", $0xundefined |
| 70 | eval "monitor mc.check_memory defined 0x%x 10", $0xundefined |
| 71 | eval "monitor mc.get_vbits 0x%x 10", $0xundefined |
| 72 | # |
| 73 | monitor vg.kill |
| 74 | quit |