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