mirror of
https://github.com/ioacademy-jikim/debugging
synced 2025-06-08 16:36:21 +00:00
34 lines
1.4 KiB
Plaintext
34 lines
1.4 KiB
Plaintext
# connect gdb to Valgrind gdbserver:
|
|
target remote | ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-nlvgdbsigqueue
|
|
echo vgdb launched process attached\n
|
|
monitor v.set vgdb-error 999999
|
|
#
|
|
#
|
|
# simulate control-c 1 second after having seen sleepers program outputting 'main'
|
|
shell ./simulate_control_c --vgdb-prefix=./vgdb-prefix-nlvgdbsigqueue 1 grep main nlvgdbsigqueue.stderr.out
|
|
#
|
|
# send SIGUSR1/SIGUSR1 in a few seconds, after vgdb has attached
|
|
# vgdb will attach when it will receive the control-c
|
|
shell ./send_signal USR1 --vgdb-prefix=./vgdb-prefix-nlvgdbsigqueue 0 grep attachedwaitingforsigusr1 nlvgdbsigqueue.stdoutB.out
|
|
shell ./send_signal USR1 --vgdb-prefix=./vgdb-prefix-nlvgdbsigqueue 1 grep attachedwaitingforsigusr1 nlvgdbsigqueue.stdoutB.out
|
|
#
|
|
echo continuing to have vgdb interrupted by simulate_control_c\n
|
|
continue
|
|
#
|
|
# Now vgdb should have received the interrupt, and so has
|
|
# attached to the sleeping process.
|
|
# wait for the USR sig to be sent, that will be queued by vgdb.
|
|
echo attachedwaitingforsigusr1\n
|
|
# send_signal tries every second the guardcmd
|
|
# so we must now wait to be (somewhat) sure the 2 SIGUSR1 are emitted
|
|
shell sleep 4
|
|
# continue, so as to have vgdb sending queued signals when PTRACE_DETACHing
|
|
echo continuing to receive first SIGUSR1\n
|
|
continue
|
|
# simulate a control c to afterwards stop the execution
|
|
shell ./simulate_control_c --vgdb-prefix=./vgdb-prefix-nlvgdbsigqueue 1
|
|
echo continuing to receive second SIGUSR1\n
|
|
continue
|
|
kill
|
|
quit
|