[PATCH 0/4] 'catch syscall' feature

Michael Snyder msnyder@vmware.com
Wed Oct 1 23:53:00 GMT 2008


Hi Sergio,

AFAIK, we're still using the CVS repository as the official source
repo.  I don't use git.  We also ask that patches be relative to
the current top-of-tree.

However, I've done my best to massage your patch into the current
cvs tree.  I'm attaching a CVS diff based on my best effort.  Please
let me know if you can spot any mistakes.

I was able to build this, but it failed your test case
(thanks very much for including a test case, by the way).
I'm attaching my failing gdb.log.

I want to thank you for the contribution while strongly
encouraging you to resubmit it relative to CVS HEAD.

Michael

Sérgio Durigan Júnior wrote:
> Hi Michael,
> 
> IMHO, the patch won't apply on CVS HEAD indeed. Also, I've used git to
> generate it, so it might be easy for you to get the specific revision to
> apply my patch.
> 
> The revision is: 337099393e64741ed0fbbb8c60ca3f6adb5d5974
> 
> You can easily checkout a copy of it by doing:
> 
> #> git clone git://sourceware.org/git/gdb.git
> #> git reset --hard 337099393e64741ed0fbbb8c60ca3f6adb5d5974
> 
> Then the patch should apply without errors.
> 
> Well, to make things a little easier, that's the last ChangeLog entry
> before mine:
> 
> 2008-09-27  Tom Tromey  <tromey@redhat.com>
> 
>         * NEWS: Update.
>         * macrocmd.c (extract_identifier): Add is_parameter argument.
>         (macro_define_command): Update.
>         (macro_undef_command): Likewise.
>         * macroexp.c (stringify): New function.
>         (find_parameter): Likewise.
>         (gather_arguments): Add nargs argument.  Handle varargs.
>         (substitute_args): Add is_varargs and va_arg_name arguments.
>         Handle varargs, splicing, stringification.  Use find_parameter.
>         (expand): Handle varargs.
> 
> 
> Hope that it helps :-).
> 
> Regards,
> 
> On Wed, 2008-10-01 at 15:38 -0700, Michael Snyder wrote:
>> Hi Sergio,
>>
>> What source tree or snapshot is your diff taken from?
>> I tried applying it to current cvs, and got a lot of
>> failures and fuzzes.
>>
>> Sérgio Durigan Júnior wrote:
>>> Hello guys,
>>>
>>> As this is my first "serious" patch to GDB, I'm sure there will be a lot
>>> of mistakes in it :-). Anyway, I hope this adds something useful to the
>>> program.
>>>
>>> The purpose of this patch is to implement a new feature in GDB called
>>> "catch syscall". In this first moment, the feature should look something
>>> like the 'strace' utility, but less "capable" (it still can't, for
>>> example, get the syscall arguments and return code - although, the way I
>>> see, this would be easy to do).
>>>
>>> With this feature, you can start over you GDB and tell it to start
>>> catching syscalls in the inferior. Whenever a syscall is called (or
>>> returns), GDB stops and tell you the name of it. You can also ask GDB to
>>> "filter" the syscalls so that you'll only see calls/returns from that
>>> specific syscall.
>>>
>>> For now the feature is only implemented for PPC32 and PPC64, but in a
>>> future not so distant I intend to send patches for x86 and x86_64 too.
>>>
>>> I've tried to organize the code the best way I could, and I've
>>> extensively used the codes for "catch fork", "catch exec" and "catch
>>> unload" as an example. I'd be glad if you could give some opinions about
>>> the way I did it :-).
>>>
>>> I've also splitted the patch into 4 logical "sequences", that are
>>> organized in this way:
>>>
>>> - First part implements the architecture-independent part of the
>>> feature.
>>> - Second part implements the architecture-dependent (PPC32 and PPC64)
>>> part of the feature.
>>> - Third part refers to the documentation.
>>> - Fourth part brings the testcase.
>>>
>>> Unfortunately, if one applies the patch and compiles GDB for PPC64, it
>>> doesn't work properly. This is due to a bug which we have found that
>>> makes the inferior segfault when there is a breakpoint inserted at its
>>> entrypoint (AT_ENTRY). Luis Machado is taking a closer look into this
>>> issue, so I think he'll have a solution soon :-).
>>>
>>> Special thanks goes to Thiago Bauermann, Luis Machado and Carlos Seo,
>>> who helped me a lot with my never-ending questions about GDB.
>>>
>>> Regards,
>>>
>>> --
>>> Sérgio Durigan Júnior
>>> Linux on Power Toolchain - Software Engineer
>>> Linux Technology Center - LTC
>>> IBM Brazil
>>>
>>>
> --
> Sérgio Durigan Júnior
> Linux on Power Toolchain - Software Engineer
> Linux Technology Center - LTC
> IBM Brazil
> 

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sergio1.txt
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20081001/0a578f1a/attachment.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sergio2.txt
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20081001/0a578f1a/attachment-0001.txt>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gdb.log
Type: text/x-log
Size: 15294 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20081001/0a578f1a/attachment.bin>


More information about the Gdb-patches mailing list