Re: [RFC] fix gdb.threads/non-stop-fair-events.exp timeouts

Sandra Loosemore
2015-09-09T16:09:10Z

On 09/08/2015 10:30 AM, Pedro Alves wrote:
>
> Yeah, I've seen this before with a local series I use for debugging
> software single-step things that implements software single-stepping
> on x86. I just re-tried it now after rebasing that series to
> current mainline, and I still see the time outs against gdbserver.
>
> AFAICS, nios2 is a software single-step target that does not implement
> displaced stepping either. I had a patch for this that I had
> never posted. See attached.
>

Hmmm, these two patches are not working for me. The trouble is that
this part:

> +gdb_test_multiple "si" $msg {
> + -re "displaced pc to.*$gdb_prompt $" {
> + set displaced_stepping_enabled 1
> + }
> + -re ".*$gdb_prompt $" {
> + }
> +}

is causing the target to step from main to pthread_self, which is in a
different file. This causes the subsequent breakpoint commands to fail,
and things go south from there:

Breakpoint 1, main () at
/scratch/sandra/nios2-linux-trunk/src/gdb-trunk/gdb/testsuite/gdb.threads/non-stop-fair-events.c:76
76 pthread_kill (pthread_self (), 0);
(gdb) handle SIGUSR1 print nostop pass
Signal Stop Print Pass to program Description
SIGUSR1 No Yes Yes User defined signal 1
(gdb) PASS: gdb.threads/non-stop-fair-events.exp: handle SIGUSR1 print
nostop pass
print num_threads
$1 = 10
(gdb) PASS: gdb.threads/non-stop-fair-events.exp: get num_threads
set debug displaced 1
(gdb) PASS: gdb.threads/non-stop-fair-events.exp: set debug displaced 1
si
0x00002720 in pthread_self () at pthread_self.c:27
27 }
(gdb) set debug displaced 0
(gdb) PASS: gdb.threads/non-stop-fair-events.exp: set debug displaced 0
delete breakpoints
Delete all breakpoints? (y or n) y
(gdb) info breakpoints
No breakpoints or watchpoints.
(gdb) print got_sig = 0
$2 = 0
(gdb) PASS: gdb.threads/non-stop-fair-events.exp: signal_thread=2: print
got_sig = 0
break 63
No line 63 in the current file.
Make breakpoint pending on future shared library load? (y or [n]) n
(gdb) FAIL: gdb.threads/non-stop-fair-events.exp: signal_thread=2:
setting breakpoint at 63
break 88
No line 88 in the current file.
Make breakpoint pending on future shared library load? (y or [n]) n
(gdb) FAIL: gdb.threads/non-stop-fair-events.exp: signal_thread=2:
setting breakpoint at 88

-Sandra