public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Pedro Alves <pedro@palves.net>
To: Bruno Larsen <blarsen@redhat.com>, gdb-patches@sourceware.org
Subject: Re: [PATCH 11/11] explicitly test for stderr in gdb.base/dprintf.exp
Date: Thu, 31 Mar 2022 15:31:23 +0100	[thread overview]
Message-ID: <d4f7c64d-45b5-d70e-0e36-a9de3e00c3cb@palves.net> (raw)
In-Reply-To: <a9ee0172-fb96-4580-76e9-45c35a36db9f@redhat.com>

On 2022-03-31 14:44, Bruno Larsen wrote:
> On 3/2/22 13:50, Pedro Alves wrote:
>> On 2022-01-26 19:50, Bruno Larsen via Gdb-patches wrote:
>>> Not all compilers explicitly add stderr information when compiling a
>>
>> It helps if you say "debug information" instead of just "information".
> 
> Ok, I'll try to be more explicit.
> 
>>
>>> program, so to avoid an unrelated failure, we explicitly test to see if
>>> the compiler has added information about it at all. This was done
>>> thinking specifically about clang, since it doesn't add stderr
>>> information and developers treat it as a feature.
>>
>> Please include a snippet of the failure in the commit log.
>>
>> I ran the test locally against clang, and I do see a failure here too:
>>
>>   (gdb) PASS: gdb.base/dprintf.exp: call: fprintf: set dprintf style to call
>>   continue
>>   Continuing.
>>   kickoff 1234
>>   also to stderr 1234
>>   'stderr' has unknown type; cast it to its declared type
>>   (gdb) FAIL: gdb.base/dprintf.exp: call: fprintf: 1st dprintf (timeout)
>>
>> However, when I debug the program manually, I see that gdb is able to print stderr,
>> if you run to main first:
>>
>>   (gdb) p stderr
>>   'stderr' has unknown type; cast it to its declared type
>>   (gdb) start
>>   Temporary breakpoint 1 at 0x4011f6: file ../../../src/gdb/testsuite/gdb.base/dprintf.c, line 35.
>>   Starting program: /home/pedro/rocm/gdb/build/gdb/testsuite/outputs/gdb.base/dprintf/dprintf
>>
>>   Temporary breakpoint 1, main (argc=1, argv=0x7fffffffdc18) at ../../../src/gdb/testsuite/gdb.base/dprintf.c:35
>>   35        int loc = 1234;
>>   (gdb) p stderr
>>   $1 = (FILE *) 0x7ffff7e4e5c0 <_IO_2_1_stderr_>
>>
>> So... it doesn't seem like the premise of the patch is correct, for the testcase
>> runs to main -- see the "restart" call in the context of your patch, just below.
>> Seems like something else may be going on?  Why is GDB not finding the debug info for
>> stderr in the dprintf call, while manually it is able to find it?
> 
> I think it might be because of external debug information. if I run the test with debuginfod, I get the same output as you:


I don't have debuginfo enabled, in fact I don't even have it compiled into gdb:

 (gdb) set debuginfod enabled off
 Support for debuginfod is not compiled into GDB.

However, that's a hint -- it's really something similar.  I had:

 set debug-file-directory /usr/lib/debug

in my ~/.gdbinit, and the GDB I was using wasn't automatically picking that debug dir.  So
when I run the test via dejagnu, GDB is started with -nx, and I saw the failure, because
then I had no debug info for libc.  When I run GDB manually (without -nx), I have debug info
due to the debug-file-directory setting, and I can print stderr.

Doh!

  reply	other threads:[~2022-03-31 14:31 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-26 19:50 [PATCH 00/11] gdb/testsuite: Cleanup gdb.base for clang testing Bruno Larsen
2022-01-26 19:50 ` [PATCH 01/11] change gdb.base/skip.exp to use finish instead of step Bruno Larsen
2022-02-25 17:00   ` Andrew Burgess
2022-03-02 16:11   ` Pedro Alves
2022-03-02 16:39     ` Andrew Burgess
2022-03-07 19:59       ` Bruno Larsen
2022-01-26 19:50 ` [PATCH 02/11] change gdb.base/symbol-alias to xfail with clang Bruno Larsen
2022-01-26 19:50 ` [PATCH 03/11] Change gdb.base/skip-solib.exp deal with lack of epilogue information Bruno Larsen
2022-03-02 16:17   ` Pedro Alves
2022-03-07 19:53     ` Bruno Larsen
2022-01-26 19:50 ` [PATCH 04/11] change gdb.base/nodebug.c to not fail with clang Bruno Larsen
2022-01-26 19:50 ` [PATCH 05/11] update gdb.base/info-program.exp " Bruno Larsen
2022-01-26 19:50 ` [PATCH 06/11] fix gdb.base/access-mem-running.exp for clang testing Bruno Larsen
2022-01-26 19:50 ` [PATCH 07/11] fix gdb.base/call-ar-st to work with clang Bruno Larsen
2022-03-02 18:59   ` Pedro Alves
2022-03-04 14:14     ` Tom Tromey
2022-03-07 20:39     ` Bruno Larsen
2022-01-26 19:50 ` [PATCH 08/11] add xfails to gdb.base/complex-parts.exp when testing " Bruno Larsen
2022-03-02 19:10   ` Pedro Alves
2022-01-26 19:50 ` [PATCH 09/11] gdb/testsuite: don't test gdb.base/msym-bp-shl " Bruno Larsen
2022-03-02 19:33   ` Pedro Alves
2022-03-08 12:58     ` Bruno Larsen
2022-03-30 12:19     ` Bruno Larsen
2022-03-31 18:49       ` Pedro Alves
2022-03-31 19:13         ` Bruno Larsen
2022-01-26 19:50 ` [PATCH 10/11] make use of finish to leave function in gdb.base/skip-inline.exp Bruno Larsen
2022-01-26 19:50 ` [PATCH 11/11] explicitly test for stderr in gdb.base/dprintf.exp Bruno Larsen
2022-03-02 16:50   ` Pedro Alves
2022-03-31 13:44     ` Bruno Larsen
2022-03-31 14:31       ` Pedro Alves [this message]
2022-02-09 12:03 ` [PING][PATCH 00/11] gdb/testsuite: Cleanup gdb.base for clang testing Bruno Larsen
2022-02-21 12:53   ` [PINGv2][PATCH " Bruno Larsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d4f7c64d-45b5-d70e-0e36-a9de3e00c3cb@palves.net \
    --to=pedro@palves.net \
    --cc=blarsen@redhat.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).