mirror of
https://github.com/ioacademy-jikim/debugging
synced 2025-06-08 16:36:21 +00:00
76 lines
2.6 KiB
Plaintext
76 lines
2.6 KiB
Plaintext
# connect gdb to Valgrind gdbserver:
|
|
target remote | ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-mcvabits
|
|
echo vgdb launched process attached\n
|
|
monitor v.set vgdb-error 999999
|
|
#
|
|
#
|
|
# insert break:
|
|
break breakme
|
|
#
|
|
# continue till //1break:
|
|
continue
|
|
#
|
|
# up to main:
|
|
up
|
|
#
|
|
# print local string variables:
|
|
print main_name
|
|
print undefined
|
|
# save address of undefined
|
|
set $0xundefined = &undefined
|
|
#
|
|
# Verif A-bits, V-bits, Get V-bits: A,V,G [0..9]
|
|
eval "monitor check_memory addressable 0x%lx 10", $0xundefined
|
|
eval "monitor check_memory defined 0x%lx 10", $0xundefined
|
|
eval "monitor get_vbits 0x%lx 10", $0xundefined
|
|
eval "monitor xb 0x%lx 10", $0xundefined
|
|
#
|
|
# continue till //2break:
|
|
continue
|
|
#
|
|
# A,V,G [0..9] after the undefinition of some bytes by executable:
|
|
eval "monitor check_memory addressable 0x%lx 10", $0xundefined
|
|
eval "monitor check_memory defined 0x%lx 10", $0xundefined
|
|
eval "monitor get_vbits 0x%lx 10", $0xundefined
|
|
#
|
|
# Redefine [2..4]
|
|
set $0xundefined_2 = (char*)$0xundefined + 2
|
|
eval "monitor make_memory defined 0x%lx 3", $0xundefined_2
|
|
# A,V,G
|
|
eval "monitor check_memory addressable 0x%lx 10", $0xundefined
|
|
eval "monitor check_memory defined 0x%lx 10", $0xundefined
|
|
eval "monitor get_vbits 0x%lx 10", $0xundefined
|
|
#
|
|
# Undefine [2..5]
|
|
eval "monitor make_memory undefined 0x%lx 4", $0xundefined_2
|
|
# A,V,G [0..9]
|
|
eval "monitor check_memory addressable 0x%lx 10", $0xundefined
|
|
eval "monitor check_memory defined 0x%lx 10", $0xundefined
|
|
eval "monitor get_vbits 0x%lx 10", $0xundefined
|
|
#
|
|
# noaccess [2..3]
|
|
eval "monitor make_memory noaccess 0x%lx 2", $0xundefined_2
|
|
# A,V,G [0..1]
|
|
eval "monitor check_memory addressable 0x%lx 2", $0xundefined
|
|
eval "monitor check_memory defined 0x%lx 2", $0xundefined
|
|
eval "monitor get_vbits 0x%lx 2", $0xundefined
|
|
# A,V,G [2..3]
|
|
eval "monitor check_memory addressable 0x%lx 2", $0xundefined_2
|
|
eval "monitor check_memory defined 0x%lx 2", $0xundefined_2
|
|
eval "monitor get_vbits 0x%lx 2", $0xundefined_2
|
|
# A,V,G [4..9]
|
|
set $0xundefined_4 = (char*) $0xundefined_2 + 2
|
|
eval "monitor check_memory addressable 0x%lx 6", $0xundefined_4
|
|
eval "monitor check_memory defined 0x%lx 6", $0xundefined_4
|
|
eval "monitor get_vbits 0x%lx 6", $0xundefined_4
|
|
#
|
|
# Definedifaddressable undefined[0..9]
|
|
eval "monitor make_memory Definedifaddressable 0x%lx 10", $0xundefined
|
|
# A,V,G
|
|
eval "monitor check_memory addressable 0x%lx 10", $0xundefined
|
|
eval "monitor check_memory defined 0x%lx 10", $0xundefined
|
|
eval "monitor get_vbits 0x%lx 10", $0xundefined
|
|
#
|
|
monitor v.kill
|
|
quit
|