[webkit-dev] Easing printf based debugging in WebKit with an helper.
Oliver Buchtala
oliver.buchtala at googlemail.com
Thu Jul 19 11:01:17 PDT 2012
On 19.07.2012 19:53, Andreas Kling wrote:
> On Tue, Jul 10, 2012 at 4:52 PM, Brady Eidson <beidson at apple.com
> <mailto:beidson at apple.com>> wrote:
>
>
> On Jul 10, 2012, at 5:25 AM, Alexis Menard
> <alexis.menard at openbossa.org <mailto:alexis.menard at openbossa.org>>
> wrote:
>
> > On Mon, Jul 9, 2012 at 6:53 PM, Brady Eidson <beidson at apple.com
> <mailto:beidson at apple.com>> wrote:
> >>
> >> On Jul 9, 2012, at 2:43 PM, Alexis Menard
> <alexis.menard at openbossa.org <mailto:alexis.menard at openbossa.org>>
> wrote:
> >>
> >>> Hi,
> >>>
> >>> For those who "secretly" use printf debugging :). I know the
> >>> recommended way is to use a debugger and it's not the point of
> this
> >>> discussion.
> >>
> >> A lot of us do this, and sometimes it's necessary. I agree
> with the gripe and support adding something easier.
> >>
> >>> So I propose wtf() and its stream operator.
> >>>
> >>> Usage :
> >>>
> >>> wtf()<<"Hello"<<"World"<<3<<4.53322323; will output : Hello
> World 3 4.53322
> >>
> >> There is no reason to bring in stream operators - that are
> willfully absent from WebCore - just for debugging.
> >>
> >
> > But it's really nice for that purpose, and somehow match std::cout
>
> And we quite purposefully don't use std::cout in the project.
>
> >> Overloading functions works just as well.
> >
> > I'm not sure to understand what you mean here...
>
> I mean relying on C++'s overloading of functions for the different
> types you'd like to printf debug.
>
> void debug(WebCore::String&);
> void debug(WebCore::Frame*);
> void debug(WebCore::Node*);
>
> etc etc etc.
>
> debug(someFrame);
> debug(someNode);
> debug(someString);
>
> Especially that last one would help me from remembering how to
> type "printf("%s", someString.utf8().data())" which is all I've
> ever really wanted.
>
>
> Hello fellow printfers!
>
> While I'm just as ashamed of my printf habits as the next guy, I think
> it'd be great if we could move forward with this somehow.
>
> Coming from a background in Qt, the stream operator syntax looks
> perfectly normal to me, perhaps you could expand on why we want to
> avoid using these in WebKit. Is there a technical reason, or is it
> more of a language purity issue?
>
> Regardless, adding a consistent set of debug(WebCore::MyCoolOverload)
> methods as suggested would still be massively useful.
>
> -Kling
>
Hi,
I am probably one of those people who much dislike printf-debugging.
What is your problem with using a debugger?
Maybe because the displayed information is not appropriate?
E.g., you would like
someString.utf8().data()
instead of
someString
FWIW, there is a gdb python API for changing the behavior... so called
pretty printers.
It is not too difficult to write such pretty-printers.
Maybe providing a set of useful pretty-printers is a better approach
than providing a set of debug functions?
Regards,
Oliver
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20120719/02a2c92c/attachment.html>
More information about the webkit-dev
mailing list