[RFA/testsuite] attach.exp: Add small delay in busy loop...

Michael Snyder msnyder@redhat.com
Thu Nov 20 20:20:00 GMT 2003

Joel Brobecker wrote:
> Hello,
> On Tue, Nov 18, 2003 at 04:26:07PM -0800, Michael Snyder wrote:
>>>2003-11-18  J. Brobecker  <brobecker@gnat.com>
>>>       * gdb.base/attach.c: Add small delay in busy loop.
>>>       * gdb.base/attach.exp: Make some associated adjustments.
>>>OK to apply?
>>Seems to work on Linux.  I'd sure like to see that backtrace test,
>>though, to confirm that we are able to build a meaningful machine
>>state after we attach.
> Here is a new version of the patch, with the backtraces in. I do have
> two FAILs though. The first FAIL comes from the following test:
>    gdb_test "backtrace" \
>             ".*in nanosleep ().*in small_delay ().*in main ().*" \
>             "backtrace after attach2"
> The logs show:
>         backtrace
>         #0  0x400eb3b5 in ?? () from /lib/libc.so.6
>         #1  0x08048412 in small_delay () at ./gdb.base/attach.c:18
>         #2  0x08048435 in main () at ./gdb.base/attach.c:29
>         (gdb) FAIL: gdb.base/attach.exp: backtrace after attach2
> So the problem is that GDB is unable to find the function name for
> frame $0. I think this comes from these warnings while performing
> the attach command:
>         attach 3671
>         Attaching to process 3671
>         Reading symbols from /[...]/testsuite/gdb.base/attach...done.
>   -->   Symbols already loaded for /lib/libm.so.6
>   -->   Symbols already loaded for /lib/libc.so.6
>         Symbols already loaded for /lib/ld-linux.so.2
>         0x400eb3b5 in ?? () from /lib/libc.so.6^M 
>         (gdb) PASS: gdb.base/attach.exp: attach2
> The second FAIL is identical.

Probably should explicitly clear the symbol tables between
one attach and the next.

> There is another thing that I think needs mentioning. I noticed I am
> the first one to introduce the use of nanosleep(). I think it's pretty
> portable, but I am having doubts. Does anybody know if it's not available
> on any platform. How about cygwin for instance?

Yeah, I remember having issues with it when I tried to write
thread tests.  I don't remember where it was missing -- maybe
Solaris?  I think your concern is valid -- nanosleep is not
guaranteed to be available everywhere.

More information about the Gdb-patches mailing list