mirror of
https://github.com/ioacademy-jikim/debugging
synced 2025-06-08 00:16:11 +00:00
74 lines
1.5 KiB
Plaintext
74 lines
1.5 KiB
Plaintext
# connect gdb to Valgrind gdbserver:
|
|
target remote | ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-mcbreak
|
|
echo vgdb launched process attached\n
|
|
monitor v.set vgdb-error 999999
|
|
#
|
|
define checkstep
|
|
set $old_pc=$pc
|
|
step
|
|
if $old_pc == $pc
|
|
echo Bizarre the oldpc has not changed after step\n
|
|
print $oldpc
|
|
print $pc
|
|
else
|
|
echo old_pc has changed after step\n
|
|
end
|
|
end
|
|
#
|
|
# break1 and break2
|
|
break t.c:113
|
|
break t.c:118
|
|
#
|
|
continue
|
|
# first break encountered.
|
|
checkstep
|
|
checkstep
|
|
checkstep
|
|
#
|
|
monitor v.set vgdb-error 0
|
|
#
|
|
next
|
|
print whoami("first")
|
|
print undefined
|
|
print i
|
|
checkstep
|
|
checkstep
|
|
next
|
|
print whoami("second")
|
|
print undefined
|
|
print i
|
|
next
|
|
print whoami("third")
|
|
print undefined
|
|
print i
|
|
next
|
|
print whoami("fourth")
|
|
print undefined
|
|
print i
|
|
# modify sleeps so as to have a shorter test:
|
|
print sleeps=1
|
|
#
|
|
print whoami("after next: inferior call pushed from mcbreak.stdinB.gdb")
|
|
continue
|
|
#
|
|
# encountered second break. Ensure we stop on line 120 : if (argc > 1)
|
|
break 120
|
|
continue
|
|
# delete all breaks
|
|
delete
|
|
continue
|
|
monitor v.info n_errs_found
|
|
monitor v.info n_errs_found a
|
|
monitor v.info n_errs_found b
|
|
monitor v.info n_errs_found c d
|
|
monitor v.info n_errs_found eeeeeee fffffff ggggggg
|
|
# inferior call "in the middle" of an instruction is not working at least
|
|
# on all platforms, so comment the below.
|
|
# print whoami("after error: inferior call pushed from mcbreak.stdinB.gdb")
|
|
checkstep
|
|
monitor v.set vgdb-error 0
|
|
continue
|
|
# stop the process a.o. to avoid non deterministic output
|
|
monitor v.kill
|
|
quit
|