[webkit-dev] Easing printf based debugging in WebKit with an helper.
Andreas Kling
kling at webkit.org
Thu Jul 19 10:53:24 PDT 2012
On Tue, Jul 10, 2012 at 4:52 PM, Brady Eidson <beidson at apple.com> wrote:
>
> On Jul 10, 2012, at 5:25 AM, Alexis Menard <alexis.menard at openbossa.org>
> wrote:
>
> > On Mon, Jul 9, 2012 at 6:53 PM, Brady Eidson <beidson at apple.com> wrote:
> >>
> >> On Jul 9, 2012, at 2:43 PM, Alexis Menard <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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20120719/1a182b32/attachment.html>
More information about the webkit-dev
mailing list