| # connect gdb to Valgrind gdbserver: |
| target remote | ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-nlcontrolc |
| echo vgdb launched process attached\n |
| monitor v.set vgdb-error 999999 |
| # |
| # |
| # simulate control-c in a few seconds |
| shell ./simulate_control_c --vgdb-prefix=./vgdb-prefix-nlcontrolc 1 grep main nlcontrolc.stderr.out |
| # |
| continue |
| # |
| # Here, all tasks should be blocked in a loooonnnng select, all in WaitSys |
| info threads |
| # We will unblock them by changing their timeout argument |
| # To avoid going into the frame where the timeval arg is, |
| # it has been defined as global variables, as the nr |
| # of calls on the stack differs between 32bits and 64bits, |
| # and/or between OS. |
| # ensure select finishes in a few milliseconds max: |
| p t[0].tv_sec = 0 |
| p t[1].tv_sec = 0 |
| p t[2].tv_sec = 0 |
| p t[3].tv_sec = 0 |
| # |
| # We will change the burning parameters in a few seconds |
| shell ./simulate_control_c --vgdb-prefix=./vgdb-prefix-nlcontrolc 1 grep changed nlcontrolc.stdoutB.out |
| # |
| echo changed burning parameters\n |
| continue |
| # |
| # Threads are burning cpu now |
| # We would like to test info threads here, but which thread are Runnable or Yielding |
| # is unpredictable. |
| # info threads |
| p burn = 0 |
| p loops = 0 |
| p report_finished = 0 |
| continue |
| # and the process should stop very quickly now |
| quit |