[webkit-dev] Inspector module

Pavel Feldman pfeldman at chromium.org
Thu Oct 7 02:32:54 PDT 2010


It sounds like you are experimenting with the alternate front-end for the
inspector controller (something we are not quite ready for). Today, remote
debugging is working with our front-end only. You can play with it on
chromium's ToT/Dev build via launching it with --remote-debugging-port=9222
flag and connecting to it from another chromium instance. Sniffing the
network traffic would give you a good clue on what you might be missing.

In your particular case, most likely you are not performing appropriate
handshake where front-end is supposed to push its injected script into the
inspector backend. Among other things, injected script is responsible for
mirroring objects and hence building call frame objects. InjectedScript.js
is the content being pushed by the original front-end. Invoking a dispatch
method on inspector controller with injected script content should do the
trick for you.

irc://irc.freenode.net/#webkit-inspector is where you can ask questions on
debugging and webkit inspector.


On Thu, Oct 7, 2010 at 1:16 PM, Ilya Tikhonovsky <loislo at chromium.org>wrote:

> +pfeldman
> Regards,
> Tim.
> On Thu, Oct 7, 2010 at 12:54 PM, Tomasz Morawski <t.morawski at samsung.com>wrote:
>> Hi,
>> I have a few questions about inspector/JS debugging feature. I am trying
>> to get a JS frame after
>> pausing script execution due to breakpoint reach. If I understand good the
>> „pausedScript” event  that  is send to my InspectorClient class via the
>> sendMessageToFrontend function should has JS frame that I looking for.
>> {"type":"event","event":"pausedScript","data":{"callFrames":null}}
>> But the callFrames field is null. The “callFrames” field is filed by an
>> InspectorDebuggerAgent::currentCallFrames() function.  Could you tell me
>> what is an InjectedScriptHost class what is the purpose of this class and
>> how I should use this object to get a callFrame? Maybe I have forgotten to
>> dispatch some commands?
>> What commands should be dispatched via an InspectorBackendDispatcher
>> object to get a callFrame after JS execution pause?
>> For test purpose I have written a code:
>> InspectorDebuggerAgent::currentCallFrames()
>> {
>>    JavaScriptCallFrame* frame =
>> ScriptDebugServer::shared().currentCallFrame();
>>    if (!frame)
>>    {
>>        fprintf(stderr, "source: %d\n", frame->sourceID());
>>        fprintf(stderr, "line:   %d\n", frame->line());
>>        fprintf(stderr, "function:   %s\n",
>> frame->functionName().ascii().data());
>>        JSC::JSGlobalObject *gobject = frame->dynamicGlobalObject();
>>        JSC::ExecState* exec = gobject->JSGlobalObject::globalExec();
>>        if (exec)
>>            fprintf(stderr, "function parameters: %d \n",
>> exec->argumentCount());
>>    }
>> But exec->argumentCount returns invalid parameters count.
>> Best regards,
>> Tomasz Morawski
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev at lists.webkit.org
>> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20101007/44389830/attachment.html>

More information about the webkit-dev mailing list