From: teawater <teawater@gmail.com>
To: "Thiago Jung Bauermann" <bauerman@br.ibm.com>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: [RFA] Process record and replay, 5/10
Date: Wed, 03 Dec 2008 02:57:00 -0000 [thread overview]
Message-ID: <daef60380812021856x723934c5x8792f6f34e31b336@mail.gmail.com> (raw)
In-Reply-To: <1228268027.11550.112.camel@localhost.localdomain>
Thanks Thiago,
On Wed, Dec 3, 2008 at 09:33, Thiago Jung Bauermann <bauerman@br.ibm.com> wrote:
> Hi teawater,
>
> Sorry for the big delay in my response.
Never mind. :)
>
> El vie, 14-11-2008 a las 16:36 +0800, teawater escribió:
>> On Fri, Nov 14, 2008 at 03:56, Thiago Jung Bauermann
>> <bauerman@br.ibm.com> wrote:
>> > Syscalls have different numbers across different architectures in Linux,
>> > so this file should be named i386-linux-record.c.
>>
>> This number is same with i386 number. It's friendly to other arch.
>>
>> Let me do a introduce of it.
>> When a record get a system call. It will get the the system number
>> with itself and convert it to the number that you found in
>> linux-record.c. I think it can use a table or something like it to
>> make covert speed up.
>> There is not some limit of this number. So I make it same with I386.
>
> So are you saying that record_linux_system_call takes a syscall number
> which is internal to GDB and doesn't necessarily correspond to the
> syscall numbers used in the target?
>
Yes.
> Right now there's only the i386 implementation of record, so the
> internal implementation is equivalent to it (and indeed,
> i386_linux_intx80_sysenter_record takes the syscall number from the
> register and passes it to record_linux_system_call).
Yes, that is what it does.
>
> If that is the case, then I'm ok. But a comment in
> record_linux_system_call explaining this intended use would help someone
> wanting to add record support to a new architecture.
OK. I will.
>
>> > Do you know if what you need to record for a syscall in one architecture
>> > is the same as what you need to record in the others? If so, it wouldn't
>> > be hard to make this file general for Linux in all architectures, and
>> > just get the syscall number mapping from the XML in the catch syscall
>> > feature (here are we talking about it again... :-) ). Otherwise, you'll
>> > have to rename the file, and also you can't directly call
>> > record_linux_system_call directly from i386-linux-tdep.c like you do
>> > now. You'd have to add a gdbarch method and reach this code through
>> > that.
>>
>> I think most of system call in each arch are same. Except the size of
>> variables is not same. So I let arch set the size to argv "tdep" of
>> record_linux_system_call.
>>
>> And if some system call of a arch is not same with others. It can deal
>> with it in code of itself. For example, If i386 have a special system
>> call that not same with other arch. It can deal with it in function
>> "i386_linux_intx80_sysenter_record".
>
> I like this idea. I don't have any authority or experience to make
> recommendations about this, but I'd guess that like you say, most
> syscalls across architectures in Linux would be similar and mostly
> differ by sizes of types and structures. If exceptions to this rule can
> be dealt with separately, than most of the laborious syscall-recording
> work can be reused in record_linux_system_call. Sounds great, thanks for
> the explanation.
>
> If you could mention this intention of reusing this function for other
> architectures, that would tip someone wanting to port record to another
> architecture, IMHO.
Yes, that is what I try to do.
Thanks for your explain. That is much better than me. I will add
them to comments if you don't mind. :)
Hui
next prev parent reply other threads:[~2008-12-03 2:57 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-06 7:50 teawater
2008-11-07 15:10 ` Eli Zaretskii
2008-11-09 3:54 ` teawater
2008-11-09 19:58 ` Eli Zaretskii
2008-11-11 18:54 ` teawater
2008-11-13 23:00 ` Thiago Jung Bauermann
2008-11-14 13:53 ` teawater
2008-12-03 1:34 ` Thiago Jung Bauermann
2008-12-03 2:57 ` teawater [this message]
2008-12-04 3:22 ` teawater
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=daef60380812021856x723934c5x8792f6f34e31b336@mail.gmail.com \
--to=teawater@gmail.com \
--cc=bauerman@br.ibm.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