This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 0/4] 'catch syscall' feature


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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]