From: "H.J. Lu" <hjl.tools@gmail.com>
To: Hui Zhu <teawater@gmail.com>
Cc: Michael Snyder <msnyder@vmware.com>,
Daniel Jacobowitz <dan@codesourcery.com>,
gdb-patches ml <gdb-patches@sourceware.org>
Subject: Re: [RFA 3/5] Prec: x86 segment register support: target
Date: Mon, 22 Mar 2010 14:35:00 -0000 [thread overview]
Message-ID: <6dc9ffc81003220735k54fbef51o4f5c9ebec06fffa7@mail.gmail.com> (raw)
In-Reply-To: <daef60381003220702w1198e4ddqaae877ffeec51606@mail.gmail.com>
On Mon, Mar 22, 2010 at 7:02 AM, Hui Zhu <teawater@gmail.com> wrote:
> Thanks Michael and Daniel.
>
> I make a patch to add base of segments registers to x86-32:
> (gdb) info reg
> eax 0xffffd514 -10988
> ecx 0x1eda96c5 517641925
> edx 0x1 1
> ebx 0xf7fb1ff4 -134537228
> esp 0xffffd488 0xffffd488
> ebp 0xffffd488 0xffffd488
> esi 0x8048510 134513936
> edi 0x80483d0 134513616
> eip 0x8048487 0x8048487 <main+3>
> eflags 0x246 [ PF ZF IF ]
> cs 0x23 35
> ss 0x2b 43
> ds 0x2b 43
> es 0x2b 43
> fs 0x0 0
> gs 0x63 99
> cs_base 0x0 0
> ss_base 0x0 0
> ds_base 0x0 0
> es_base 0x0 0
> fs_base 0x0 0
> gs_base 0xf7e528d0 -135976752
>
> I try it in x86-32 pc and 32bit code in x86-64. It works OK.
>
> Please help me review it.
>
> Best regards,
> Hui
>
> 2010-03-22 Hui Zhu <teawater@gmail.com>
>
> * features/i386/32bit-linux.xml (org.gnu.gdb.i386.linux): Add
> cs_base, ss_base, ds_base, es_base, fs_base and gs_base.
> * i386-tdep.h (i386_segment_base_regnum): New enum.
> * amd64-linux-nat.c (GDT_ENTRY_TLS_MIN,
> GDT_ENTRY_TLS_MAX): New marco.
> (ps_get_thread_area): New extern.
> (amd64_linux_fetch_inferior_registers): Add
> code to get 32 bits segment registers base.
> * i386-linux-nat.c (GDT_ENTRY_TLS_ENTRIES,
> GDT_ENTRY_TLS_MIN,
> GDT_ENTRY_TLS_MAX): New marco.
> (ps_get_thread_area): New extern.
> (i386_linux_fetch_inferior_registers): Add
> code to get segment registers base.
Are we going to support them on other OSes? If not,
the contents of i386_segment_base_regnum should be
moved to i386-linux-tdep.h and those values should
be after
/* Register number for the "orig_eax" pseudo-register. If this
pseudo-register contains a value >= 0 it is interpreted as the
system call number that the kernel is supposed to restart. */
#define I386_LINUX_ORIG_EAX_REGNUM I386_SSE_NUM_REGS
In any cases, they shouldn't be hard-coded to any values.
Otherwise, it won't work with AVX, which will add more registers.
--
H.J.
next prev parent reply other threads:[~2010-03-22 14:35 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-16 16:53 Hui Zhu
2010-03-16 18:12 ` Michael Snyder
2010-03-16 20:04 ` Daniel Jacobowitz
2010-03-22 14:03 ` Hui Zhu
2010-03-22 14:35 ` Mark Kettenis
2010-03-22 14:45 ` Hui Zhu
2010-03-22 14:53 ` Daniel Jacobowitz
2010-03-22 18:04 ` Eli Zaretskii
2010-03-22 18:14 ` Doug Evans
2010-03-22 16:03 ` Doug Evans
2010-03-22 14:35 ` H.J. Lu [this message]
2010-03-22 14:44 ` Hui Zhu
2010-03-22 15:05 ` Mark Kettenis
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=6dc9ffc81003220735k54fbef51o4f5c9ebec06fffa7@mail.gmail.com \
--to=hjl.tools@gmail.com \
--cc=dan@codesourcery.com \
--cc=gdb-patches@sourceware.org \
--cc=msnyder@vmware.com \
--cc=teawater@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