1# connect gdb to Valgrind gdbserver:
2target remote | ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-nlcontrolc
3echo vgdb launched process attached\n
4monitor v.set vgdb-error 999999
5#
6#
7# simulate control-c in a few seconds
8shell ./simulate_control_c --vgdb-prefix=./vgdb-prefix-nlcontrolc 1 grep main nlcontrolc.stderr.out
9#
10continue
11#
12# Here, all tasks should be blocked in a loooonnnng select, all in WaitSys
13info threads
14# We will unblock them by changing their timeout argument
15# To avoid going into the frame where the timeval arg is,
16# it has been defined as global variables, as the nr
17# of calls on the stack differs between 32bits and 64bits,
18# and/or between OS.
19# ensure select finishes in a few milliseconds max:
20p t[0].tv_sec = 0
21p t[1].tv_sec = 0
22p t[2].tv_sec = 0
23p t[3].tv_sec = 0
24#
25# We will change the burning parameters in a few  seconds
26shell ./simulate_control_c --vgdb-prefix=./vgdb-prefix-nlcontrolc 1 grep changed nlcontrolc.stdoutB.out
27#
28echo changed burning parameters\n
29continue
30#
31# Threads are burning cpu now
32# We would like to test info threads here, but which thread are Runnable or Yielding
33# is unpredictable.
34# info threads
35p burn = 0
36p loops = 0
37p report_finished = 0
38continue
39# and the process should stop very quickly now
40quit
41