<div class="gmail_quote">On Wed, Jan 11, 2012 at 1:05 PM, Jarred Nicholls <span dir="ltr"><<a href="mailto:jarred@webkit.org">jarred@webkit.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="HOEnZb"><div class="h5"><div class="gmail_quote">On Tue, Jan 10, 2012 at 11:08 PM, Leo Franchi <span dir="ltr"><<a href="mailto:lfranchi@kde.org" target="_blank">lfranchi@kde.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div style="word-wrap:break-word"><div><div><div>On Jan 10, 2012, at 2:45 PM, Jarred Nicholls wrote:</div><br></div><div><div><blockquote type="cite">Hey qtwebkittens,<div><br></div><div>My company has charged me with resolving a very nasty issue with QtWebKit 2.2.1's web inspector interface (built from Qt 4.8.0 source), which locks up when one pauses script at a breakpoint.</div>





<div><br></div><div><a href="https://bugs.webkit.org/show_bug.cgi?id=71271" target="_blank">https://bugs.webkit.org/show_bug.cgi?id=71271</a></div><div><br></div><div>CPU on the process goes to 100% and it looks like the EventLoop just runs on and on (calling QCoreApplication::processEvents), but isn't processing UI events in the inspector interface at all.</div>





<div><br></div><div>Before spending much more time trying to analyze this issue and scouring changesets, has anyone experienced this themself and/or have any indication of what the issue is or how to fix it?  This appears to have been an issue in the past (<a href="https://bugs.webkit.org/show_bug.cgi?id=41142" target="_blank">https://bugs.webkit.org/show_bug.cgi?id=41142</a>) but I have a trunk build of QtWebKit @ r84622 (against Qt 4.7.4) that does not have this issue.</div>



</blockquote><div><br></div></div></div>Hi Jarred,</div><div><div><br></div><div>It might be the issue I fixed recently in my qtwebkit fork---I added support for phantomjs remote debugging, and ran into this exact same thing. Turns out in a few places setting a breakpoint caused processing of the incoming events from the JS side of the debugger to fail. </div>



<div><br></div><div>I mentioned my fixes to jturcotte but didn't get much interest---if there is interest I will gladly clean up my patches and get these fixes upstream.</div><div><br></div><div>Here's the work to see if it fixes for you:</div>



<div><br></div><div>1) Updated Websocket implementation to latest spec to work against a recent chrome/webkit browser:</div><div><br></div><div><a href="https://gitorious.org/~lfranchi/webkit/lfranchis-qtwebkit/commit/93a72f2657c2a8bb6863d5d2ffe8ce6faedd4598" target="_blank">https://gitorious.org/~lfranchi/webkit/lfranchis-qtwebkit/commit/93a72f2657c2a8bb6863d5d2ffe8ce6faedd4598</a></div>



<div><br></div><div>2) 2 fixes for hanging on breakpoint (one requires the above commit, but is easy enough to apply against trunk if you read the code)</div><div><br></div><div><a href="https://gitorious.org/~lfranchi/webkit/lfranchis-qtwebkit/commit/4e104bc438c21ef63a6a4227a142d36bf2401b2e" target="_blank">https://gitorious.org/~lfranchi/webkit/lfranchis-qtwebkit/commit/4e104bc438c21ef63a6a4227a142d36bf2401b2e</a></div>



<div><a href="https://gitorious.org/~lfranchi/webkit/lfranchis-qtwebkit/commit/1606e202891b856ad0fdae80288ccdbf8d6765e1" target="_blank">https://gitorious.org/~lfranchi/webkit/lfranchis-qtwebkit/commit/1606e202891b856ad0fdae80288ccdbf8d6765e1</a></div>



<div><br></div><div>The latter two patches I hope should fix your issue. All 3 are also available as a standalone patch against qt 4.8 here:</div><div><br></div><div><a href="https://github.com/ariya/phantomjs/blob/master/deploy/qt48_fix_inspector.patch" target="_blank">https://github.com/ariya/phantomjs/blob/master/deploy/qt48_fix_inspector.patch</a></div>



<div><br></div><div>cheers,</div><div>leo</div><br><div>
<div style="word-wrap:break-word"><div><div>--</div><div><a href="mailto:leo@kdab.com" target="_blank">leo@kdab.com</a>                                 KDAB (USA), LLC</div><div><a href="mailto:lfranchi@kde.org" target="_blank">lfranchi@kde.org</a>                             The KDE Project</div>



</div></div>
</div>
<br><div>
<span style="text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:auto;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><span style="text-indent:0px;letter-spacing:normal;font-variant:normal;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">



<div><div>--</div><div><a href="mailto:leo@kdab.com" target="_blank">leo@kdab.com</a>                                 KDAB (USA), LLC</div><div><a href="mailto:lfranchi@kde.org" target="_blank">lfranchi@kde.org</a>                             The KDE Project</div>



</div></div></span></span>
</div>

<br></div></div></blockquote></div><br></div></div><div>Hi Leo,</div><div><br></div><div>I tried the patch on vanilla Qt 4.8 and unfortunately it did not resolve the issue for me :(  I will keep digging.  Thanks!</div><span class="HOEnZb"><font color="#888888"><div>

<br></div>
<div>Jarred</div>
</font></span></blockquote></div><br><div>Hi Leo,</div><div><br></div><div>FYI, I did get remote debugging to work, it was a stupid mistake on my part.  I narrowed down the issue of local debugging; it seems the inspector's JS context is paused when the Frame's context is paused.  I added some debugging to WebInspector.dispatch() in inspector.js, and it seems that execution of the inspector itself is paused.  I resumed the code execution manually in ScriptDebugServer via GDB and the inspector's code resumes.  It's a little bizarre, but since I got remote debugging to work (thanks to your patch!) this will suffice for now.</div>

<div><br></div><div>Cheers,<br>Jarred</div>