Home | History | Annotate | Download | only in gdbserver_tests
      1 # connect gdb to Valgrind gdbserver:
      2 target remote | ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-nlvgdbsigqueue
      3 echo vgdb launched process attached\n
      4 monitor v.set vgdb-error 999999
      5 #
      6 #
      7 # simulate control-c 1 second after having seen sleepers program outputting 'main'
      8 shell ./simulate_control_c --vgdb-prefix=./vgdb-prefix-nlvgdbsigqueue 1 grep main nlvgdbsigqueue.stderr.out
      9 #
     10 # send SIGUSR1/SIGUSR1 in a few seconds, after vgdb has attached
     11 # vgdb will attach when it will receive the control-c
     12 shell ./send_signal USR1 --vgdb-prefix=./vgdb-prefix-nlvgdbsigqueue 0 grep attachedwaitingforsigusr1 nlvgdbsigqueue.stdoutB.out
     13 shell ./send_signal USR1 --vgdb-prefix=./vgdb-prefix-nlvgdbsigqueue 1 grep attachedwaitingforsigusr1 nlvgdbsigqueue.stdoutB.out
     14 #
     15 echo continuing to have vgdb interrupted by simulate_control_c\n
     16 continue
     17 #
     18 # Now vgdb should have received the interrupt, and so has
     19 # attached to the sleeping process.
     20 # wait for the USR sig to be sent, that will be queued by vgdb.
     21 echo attachedwaitingforsigusr1\n
     22 # send_signal tries every second the guardcmd
     23 # so we must now wait to be (somewhat) sure the 2 SIGUSR1 are emitted
     24 shell sleep 4
     25 # continue, so as to have vgdb sending queued signals when PTRACE_DETACHing
     26 echo continuing to receive first SIGUSR1\n
     27 continue
     28 # simulate a control c to afterwards stop the execution
     29 shell ./simulate_control_c --vgdb-prefix=./vgdb-prefix-nlvgdbsigqueue 1
     30 echo continuing to receive second SIGUSR1\n
     31 continue
     32 kill
     33 quit
     34