diff options
author | yurys@google.com <yurys@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-13 23:09:31 +0000 |
---|---|---|
committer | yurys@google.com <yurys@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-13 23:09:31 +0000 |
commit | e9d2f166c90ccd612c7ba014c4066840053d5bee (patch) | |
tree | bcdfc247e6a2e96070f24f0546dd8d9d9ecd8e37 /webkit | |
parent | baa3280f82301f2a93712f2ed69f9d524a154053 (diff) | |
download | chromium_src-e9d2f166c90ccd612c7ba014c4066840053d5bee.zip chromium_src-e9d2f166c90ccd612c7ba014c4066840053d5bee.tar.gz chromium_src-e9d2f166c90ccd612c7ba014c4066840053d5bee.tar.bz2 |
v8 uses 0-based line numbering, while in WebKit they are numbered from 1 so we need to convert between that representations.
Review URL: http://codereview.chromium.org/67104
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13627 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/glue/devtools/js/debugger_agent.js | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/webkit/glue/devtools/js/debugger_agent.js b/webkit/glue/devtools/js/debugger_agent.js index 84ae57e..85a61f6 100644 --- a/webkit/glue/devtools/js/debugger_agent.js +++ b/webkit/glue/devtools/js/debugger_agent.js @@ -82,6 +82,8 @@ devtools.DebuggerAgent.prototype.addBreakpoint = function(sourceId, line) { return; } + line = devtools.DebuggerAgent.webkitToV8LineNumber_(line); + var breakpointInfo = script.getBreakpointInfo(line); if (breakpointInfo) { return; @@ -90,7 +92,6 @@ devtools.DebuggerAgent.prototype.addBreakpoint = function(sourceId, line) { breakpointInfo = new devtools.BreakpointInfo(sourceId, line); script.addBreakpointInfo(breakpointInfo); - line += script.getLineOffset() - 1; var cmd = new devtools.DebugCommand('setbreakpoint', { 'type': 'scriptId', 'target': sourceId, @@ -113,6 +114,8 @@ devtools.DebuggerAgent.prototype.removeBreakpoint = function(sourceId, line) { return; } + line = devtools.DebuggerAgent.webkitToV8LineNumber_(line); + var breakpointInfo = script.getBreakpointInfo(line); script.removeBreakpointInfo(breakpointInfo); breakpointInfo.markAsRemoved(); @@ -255,10 +258,11 @@ devtools.DebuggerAgent.prototype.handleDebuggerOutput_ = function(output) { */ devtools.DebuggerAgent.prototype.handleBreakEvent_ = function(msg) { var body = msg.getBody(); - + + var line = devtools.DebuggerAgent.v8ToWwebkitLineNumber_(body.sourceLine); this.currentCallFrame_ = { 'sourceID': body.script.id, - 'line': body.sourceLine - body.script.lineOffset +1, + 'line': line, 'script': body.script, 'scopeChain': [], 'thisObject': {} @@ -385,9 +389,10 @@ devtools.DebuggerAgent.formatCallFrame_ = function(stackFrame, script, msg) { // Add variable with name 'this' to the scope. scope['this'] = devtools.DebuggerAgent.formatObject_(thisObject, msg); + var line = devtools.DebuggerAgent.v8ToWwebkitLineNumber_(stackFrame.line); return { 'sourceID': sourceId, - 'line': stackFrame.line - script.lineOffset +1, + 'line': line, 'type': 'function', 'functionName': funcName, //stackFrame.text, 'caller': null, @@ -490,6 +495,26 @@ devtools.DebuggerAgent.formatObjectReference_ = function(objectRef, msg) { /** + * Converts line number from Web Inspector UI(1-based) to v8(0-based). + * @param {number} line Resource line number in Web Inspector UI. + * @return {number} The line number in v8. + */ +devtools.DebuggerAgent.webkitToV8LineNumber_ = function(line) { + return line - 1; +}; + + +/** + * Converts line number from v8(0-based) to Web Inspector UI(1-based). + * @param {number} line Resource line number in v8. + * @return {number} The line number in Web Inspector. + */ +devtools.DebuggerAgent.v8ToWwebkitLineNumber_ = function(line) { + return line + 1; +}; + + +/** * @param {number} scriptId Id of the script. * @param {number} lineOffset First line 0-based offset in the containing * document. |