Re: [RFA/RFC Prec] Add process record skip 6/6 (doc)

Eli Zaretskii
2009-08-26T17:51:32Z

> From: Hui Zhu <teawater@gmail.com>
> Date: Tue, 25 Aug 2009 11:47:09 +0800
> Cc: gdb-patches@sourceware.org, msnyder@vmware.com, green@moxielogic.com
>
> >> i386_linux_process_record_simple_function is for printf.
> >> i386_linux_process_record_memset is for memset and memcpy.
> >
> > So we currently support record skip of only 3 functions, the ones
> > mentioned above, is that right? Â In that case, we should document
> > those functions in the manual, I think.
>
> Yes, I think after this feature in, we can add more and more functions
> to support skip.

But then the proposed code is IMHO awfully limited, isn't it? Why
not add some more general mechanism, for several broad classes of
functions (like the `simple_function' class you used for `printf'),
and let the user specify which functions she wants to skip, instead of
hard-coding the functions in GDB?

By contrast, the suggested code will cause us to have gobs of library
functions intimately known to GDB, and will bloat the executable, for
starters.

Also, why is this code being make Linux-specific? Surely, most, if
not all, other implementations of `printf', `memset' and `memcpy' have
the exact same API and the same external effects as those you have in
glibc, no?

> What do you think about the doc like this:
> The record skip support following functions:
> I386-Linux printf, memcpy, memset.

If we want to hard-code the functions, then we need something like
this in the manual:

Only some standard functions are currently supported by the
@code{record skip} command; type the command without arguments to
see the full list.

> > Do we lose any information because of skip? Â If not, why don't we do
> > that always, why do we need an option to enable and disable that?
> >
>
> This is a very good question.
> It will not lose any information.
> I add a disable function because if customer want reverse debug inside
> the function, he will need setp by step without skip like in before.
> For example, debug the libc.

Okay, but then at least let's have it on by default.