This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Changes required for x86 address spaces
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Richard Henderson <rth at redhat dot com>
- Cc: GDB <gdb at sourceware dot org>
- Date: Tue, 20 Oct 2015 19:38:24 -0700
- Subject: Re: Changes required for x86 address spaces
- Authentication-results: sourceware.org; auth=none
- References: <5626BF4A dot 2080600 at redhat dot com>
On Tue, Oct 20, 2015 at 3:25 PM, Richard Henderson <rth@redhat.com> wrote:
> 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.
>
Table 2.14: DWARF Register Number Mapping in Intel386 psABI:
https://github.com/hjl-tools/x86-psABI/wiki/X86-psABI
defines
Segment Register ES 40 %es
Segment Register CS 41 %cs
Segment Register SS 42 %ss
Segment Register DS 43 %ds
Segment Register FS 44 %fs
Segment Register GS 45 %gs
Why not use them?
--
H.J.