Commit 891e3124 authored by kozyatinskiy's avatar kozyatinskiy Committed by Commit bot

[inspector] fixed Debugger.getPossibleBreakpoints

If we just call CreateDebugInfo in GetPossibleBreakpoints then we won't call PrepareFunctionForBreakPoints and won't be able to step into this function or pause at breakpoint inside.

BUG=v8:5695
R=dgozman@chromium.org,yangguo@chromium.org

Review-Url: https://codereview.chromium.org/2540943002
Cr-Commit-Position: refs/heads/master@{#41401}
parent bf35d15e
......@@ -1360,7 +1360,8 @@ bool Debug::GetPossibleBreakpoints(Handle<Script> script, int start_position,
was_compiled = true;
}
}
if (!candidates[i]->HasDebugInfo()) CreateDebugInfo(candidates[i]);
if (!EnsureDebugInfo(candidates[i], Handle<JSFunction>::null()))
return false;
}
if (was_compiled) continue;
......
......@@ -541,6 +541,12 @@ Running test: arrowFunctionOnPause
breakpointId : <breakpointId>
}
}
paused in
{
columnNumber : 0
lineNumber : 2
scriptId : <scriptId>
}
paused in foo3
{
columnNumber : 28
......@@ -553,6 +559,12 @@ paused in foo3
lineNumber : 0
scriptId : <scriptId>
}
paused in
{
columnNumber : 0
lineNumber : 3
scriptId : <scriptId>
}
paused in foo4
{
columnNumber : 18
......@@ -565,6 +577,12 @@ paused in foo4
lineNumber : 1
scriptId : <scriptId>
}
paused in
{
columnNumber : 6
lineNumber : 3
scriptId : <scriptId>
}
paused in Promise.resolve.then
{
columnNumber : 57
......
-- call boo:
(top)
(top)
boo
(top)
-- call foo:
(top)
(top)
(top)
foo
(top)
// Copyright 2016 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
InspectorTest.addScript(`
function boo() {}
boo();
function foo() {}
//# sourceURL=foo.js`);
Protocol.Debugger.onPaused((message) => {
InspectorTest.logMessage(message.params.callFrames[0].functionName || "(top)");
Protocol.Debugger.stepInto();
});
var scriptId;
Protocol.Debugger.onScriptParsed(message => {
if (message.params.url === 'foo.js')
scriptId = message.params.scriptId;
});
Protocol.Debugger.enable()
.then(() => Protocol.Debugger.getPossibleBreakpoints({start: {scriptId, lineNumber:0,columnNumber:0}}))
.then(() => InspectorTest.log('-- call boo:'))
.then(() => Protocol.Runtime.evaluate({ expression: 'debugger; boo();'}))
.then(() => InspectorTest.log('-- call foo:'))
.then(() => Protocol.Runtime.evaluate({ expression: 'debugger; foo();'}))
.then(InspectorTest.completeTest);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment