Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Richard Henderson <rth@redhat.com>
To: gdb@sourceware.org
Cc: "H.J. Lu" <hjl.tools@gmail.com>
Subject: Changes required for x86 address spaces
Date: Tue, 20 Oct 2015 22:25:00 -0000	[thread overview]
Message-ID: <5626BF4A.2080600@redhat.com> (raw)

Hi!

Here are some notes regarding gdb changes required in order to support

   https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01972.html

In my opinion, DW_AT_address_class is best when the alternate address space is 
truely disjoint, or has a different pointer width.  That certainly matches up 
with the language in the dwarf4 doc, and existing usage in the embedded targets.

Thus I've arranged for these x86 address spaces to use DW_AT_segment, a dwarf 
location containing an offset from the flat address space.  For the purposes of 
the debug info, I map __seg_tls to __seg_fs or __seg_gs.

The x86-64 abi already has dwarf register numbers allocated for fs_base and 
gs_base.  Thus the location is simply the trivial DW_OP_regx 58 or 59 
respectively.  The i386 abi does not yet have the same register number 
pre-allocated; the latest version I see in HJL's github document has dwarf 
registers 58-59 within a block of reserved values, so for now I'm using the 
same values for both x86-64 and i386.

One of these days, the various operating systems may enable the fsgsbase ISA 
extension present in Haswell cpus, so making these values visible within the 
debugger now is a nice side effect.

What isn't present in gdb at present is any support for DW_AT_segment, and I'm 
not familiar enough with the internals to work out how to enable that.


r~


             reply	other threads:[~2015-10-20 22:25 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-20 22:25 Richard Henderson [this message]
2015-10-21  2:38 ` H.J. Lu
2015-10-21  8:16   ` Gary Benson
2015-10-21 17:47     ` Richard Henderson
2015-10-21 18:36       ` Pedro Alves

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=5626BF4A.2080600@redhat.com \
    --to=rth@redhat.com \
    --cc=gdb@sourceware.org \
    --cc=hjl.tools@gmail.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