Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Simon Marchi <simark@simark.ca>
To: Tom de Vries <tdevries@suse.de>, gdb-patches@sourceware.org
Cc: Tom Tromey <tom@tromey.com>
Subject: Re: [PATCH][gdb] Fix missing symtab includes
Date: Sat, 28 Mar 2020 12:32:47 -0400	[thread overview]
Message-ID: <d2649f31-86ed-e7d3-78b2-127d5cbc9522@simark.ca> (raw)
In-Reply-To: <20200327204948.GA23365@delia>

On 2020-03-27 4:49 p.m., Tom de Vries wrote:
> Hi,
> 
> Consider hello.h:
> ...
>  inline static const char*
>  foo (void)
>  {
>    return "foo";
>  }
> ...
> and hello.c:
> ...
>  #include <stdio.h>
>  #include "hello.h"
> 
>  int
>  main (void)
>  {
>    printf ("hello: %s\n", foo ());
>    return 0;
>  }
> ...
> compiled with -g, and dwz-compressed:
> ...
> $ gcc -g hello.c
> $ dwz a.out
> ...
> 
> When breaking on foo and printing the symbol tables, we have two includes for
> the hello.c compunit_symtab, representing two imported partial units:
> ...
> $ gdb -iex "set language c" -batch a.out -ex "b foo" -ex "maint info symtabs"
> Breakpoint 1 at 0x40050b: file hello.h, line 4.
>   ...
>   { ((struct compunit_symtab *) 0x38fa890)
>     debugformat DWARF 2
>     producer GNU C11 7.5.0 -mtune=generic -march=x86-64 -g
>     dirname /data/gdb_versions/devel
>     blockvector ((struct blockvector *) 0x39af9f0)
>     user ((struct compunit_symtab *) (null))
>     ( includes
>       ((struct compunit_symtab *) 0x39afb10)
>       ((struct compunit_symtab *) 0x39b00c0)
>     )
>         { symtab hello.c ((struct symtab *) 0x38fa940)
>           fullname (null)
>           linetable ((struct linetable *) 0x39afa80)
>         }
> ...

I am not able to reproduce this.  In both cases, I don't get the `includes`.

What transformation is dwz expected to do on the binary?  Here, it looks like
it just compressed the debug info a little bit, changing the addresses, but the
general structure was untouched.

I'm using the latest git version of dwz (commit b7111689a2ccec2f57343f1051ec8f1df5e89e5c).

Simon


  reply	other threads:[~2020-03-28 16:32 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-27 20:49 Tom de Vries
2020-03-28 16:32 ` Simon Marchi [this message]
2020-03-28 17:24   ` Tom de Vries
2020-03-29 15:39     ` Simon Marchi
2020-03-29 15:56       ` Tom de Vries
2020-03-29 21:44         ` Simon Marchi
2020-03-30 17:42           ` Tom de Vries
2020-04-14 13:31             ` Tom de Vries
2020-03-28 19:08 ` Tom Tromey

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=d2649f31-86ed-e7d3-78b2-127d5cbc9522@simark.ca \
    --to=simark@simark.ca \
    --cc=gdb-patches@sourceware.org \
    --cc=tdevries@suse.de \
    --cc=tom@tromey.com \
    /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