Not that I admit to using printf debugging, but if I were to, hypothetically of course, I would find this patch helpful.
On Mon, Jul 9, 2012 at 2:43 PM, Alexis Menard <alexis.men...@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. > > The other day I was working on the Mac port (with no real possibility > to have a debug build) and I missed a lot a great feature we have in > Qt : qDebug(). I find the usage of printf cumbersome (so is LOG and > dataLog). > QDebug prettify and ease printf based debug workflow. Even in WebKit > using QDebug is pretty handy as very important core types of WebKit > have a Qt representation (e.g. WTF::String can be converted to a > QString). So you can do something like : String string("HELLO"); > qDebug()<<string and it just output "HELLO" for you. Much more > efficient (to write ofc) than : fprintf(stderr, "%s\n", > string.utf8().data()); > Still today a lot of WebKit core type have no counterpart in Qt (and > will never have) so qDebug pretty much fail (worst case it shows a > pointer address if possible). > > I'm also aware of NSLog but it unfortunately only work in objective c > files. > > Then I thought about adding a dedicated debugging helper for WebKit in > general, not Qt related so it could benefit everyone not just a given > port. > > So I propose wtf() and its stream operator. > > Usage : > > wtf()<<"Hello"<<"World"<<3<<4.53322323; will output : Hello World 3 4.53322 > > IntRect rect(10, 20, 50, 100); > wtf()<<"Rect"<<rect; will output : Rect IntRect(10,20 50x100) > > Vector<String> v; > v.append("3"); > v.append("4"); > v.append("5"); > wtf()<<v; will output : Vector ("3", "4", "5"); > > These are basic examples but we can really extend it to virtually > anything, like higher level classes. > > Here is the bug with a patch attached : > > https://bugs.webkit.org/show_bug.cgi?id=90823 > > wtf() is not meant to stay in a given function/patch. It is for > developers only who wants to debug, we don't want to add overhead in > release build and we do have the LOG macro doing a job similar. > > An other alternative could be to extend dataLog to support this > streaming operator case. I'm open to this alternative too. > > It's a work in progress but I want to get feedback before I continue > further (adding some stream operator overload for example) and also I > need to make sure it builds on all ports. > > Do you think it is useful? Do you think it will ease/make you faster > when debugging when you use printf? Do you want that in WebKit? > > I'm open to suggestion and maybe later improvements (such as showing > the line numbers, fct names...). If people think that is useless then > forget about it. > > Thanks. > > -- > Alexis Menard (darktears) > Software Engineer > openBossa @ INdT - Instituto Nokia de Tecnologia > _______________________________________________ > webkit-dev mailing list > webkit-dev@lists.webkit.org > http://lists.webkit.org/mailman/listinfo/webkit-dev >
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo/webkit-dev