[Webkit-unassigned] [Bug 53003] Web Inspector: [JSC] implement setting breakpoints by line:column

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Jun 26 05:49:33 PDT 2012


--- Comment #32 from Peter Wang <peter.wang at torchmobile.com.cn>  2012-06-26 05:49:26 PST ---
(In reply to comment #31)
> (From update of attachment 149490 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=149490&action=review
> > Source/WebCore/bindings/js/ScriptDebugServer.cpp:136
> > +    if (m_currentSourceID != sourceID) {
> Can you explain how that is expected to work in case when you first stop in a script 1, then in a script 2 and again in the same line in script 1? It seems that in that case you will return the first column as the current one or am I missing something?
The sourceID represents the code block of current callframe, if code block is changed, then it must starts from the first line.  
You can take this call stack as example: 
debugger->callEvent(..., callFrame->codeBlock()->ownerExecutable()->sourceID(),...);
ScriptDebugServer::createCallFrameAndPauseIfNeeded(... ,sourceID, ...);

> > Source/WebCore/bindings/js/ScriptDebugServer.cpp:157
> > +    int nextColumn = codeInLine.find(";", m_currentStatementPosition.columnNumber);
> You shouldn't be trying to parse the code here, instead JSC should be extended to report you current statement's column.
It's a very big change to make JSC to provide current statement's column. Since JSC doesn't really insert break point, it just call interface of Debugger at entrance of Function or code-block. 
And actually, the Debugger has enough info to calculate it.
> > Source/WebCore/bindings/js/ScriptDebugServer.cpp:160
> > +        if (c == ' ' || c == '\t')
> What is the purpose of skipping first whitespace?
For example, the column of second statement in "var a = 1;[white apace][white apace]...[white apace]var b=1;", the formatter of forntend assign it as 11.

Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

More information about the webkit-unassigned mailing list