1 # connect gdb to Valgrind gdbserver: 2 target remote | ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-mcvabits 3 echo vgdb launched process attached\n 4 monitor v.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 check_memory addressable 0x%lx 10", $0xundefined 24 eval "monitor check_memory defined 0x%lx 10", $0xundefined 25 eval "monitor get_vbits 0x%lx 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 check_memory addressable 0x%lx 10", $0xundefined 32 eval "monitor check_memory defined 0x%lx 10", $0xundefined 33 eval "monitor get_vbits 0x%lx 10", $0xundefined 34 # 35 # Redefine [2..4] 36 set $0xundefined_2 = (char*)$0xundefined + 2 37 eval "monitor make_memory defined 0x%lx 3", $0xundefined_2 38 # A,V,G 39 eval "monitor check_memory addressable 0x%lx 10", $0xundefined 40 eval "monitor check_memory defined 0x%lx 10", $0xundefined 41 eval "monitor get_vbits 0x%lx 10", $0xundefined 42 # 43 # Undefine [2..5] 44 eval "monitor make_memory undefined 0x%lx 4", $0xundefined_2 45 # A,V,G [0..9] 46 eval "monitor check_memory addressable 0x%lx 10", $0xundefined 47 eval "monitor check_memory defined 0x%lx 10", $0xundefined 48 eval "monitor get_vbits 0x%lx 10", $0xundefined 49 # 50 # noaccess [2..3] 51 eval "monitor make_memory noaccess 0x%lx 2", $0xundefined_2 52 # A,V,G [0..1] 53 eval "monitor check_memory addressable 0x%lx 2", $0xundefined 54 eval "monitor check_memory defined 0x%lx 2", $0xundefined 55 eval "monitor get_vbits 0x%lx 2", $0xundefined 56 # A,V,G [2..3] 57 eval "monitor check_memory addressable 0x%lx 2", $0xundefined_2 58 eval "monitor check_memory defined 0x%lx 2", $0xundefined_2 59 eval "monitor get_vbits 0x%lx 2", $0xundefined_2 60 # A,V,G [4..9] 61 set $0xundefined_4 = (char*) $0xundefined_2 + 2 62 eval "monitor check_memory addressable 0x%lx 6", $0xundefined_4 63 eval "monitor check_memory defined 0x%lx 6", $0xundefined_4 64 eval "monitor get_vbits 0x%lx 6", $0xundefined_4 65 # 66 # Definedifaddressable undefined[0..9] 67 eval "monitor make_memory Definedifaddressable 0x%lx 10", $0xundefined 68 # A,V,G 69 eval "monitor check_memory addressable 0x%lx 10", $0xundefined 70 eval "monitor check_memory defined 0x%lx 10", $0xundefined 71 eval "monitor get_vbits 0x%lx 10", $0xundefined 72 # 73 monitor v.kill 74 quit 75