[interpreter] Add tests for translating PC from optimized frame.
R=mythria@chromium.org, rmcilroy@chromium.org BUG=v8:4689 LOG=N Review URL: https://codereview.chromium.org/1759673002 Cr-Commit-Position: refs/heads/master@{#34434}
This commit is contained in:
parent
bc18baf8ae
commit
db2419c303
38
test/mjsunit/ignition/optimized-debug-frame.js
Normal file
38
test/mjsunit/ignition/optimized-debug-frame.js
Normal file
@ -0,0 +1,38 @@
|
||||
// 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.
|
||||
|
||||
// Flags: --allow-natives-syntax --expose-debug-as debug
|
||||
|
||||
// Test that PC in optimized frame would correctly translate into
|
||||
// unoptimized frame when retrieving frame information in the debugger.
|
||||
|
||||
function f() {
|
||||
debugger;
|
||||
}
|
||||
|
||||
function g(x) {
|
||||
return f();
|
||||
}
|
||||
|
||||
var break_count = 0;
|
||||
|
||||
function listener(event, exec_state, event_data, data) {
|
||||
if (event != Debug.DebugEvent.Break) return;
|
||||
assertEquals(14, exec_state.frame(1).sourceLine());
|
||||
assertEquals(9, exec_state.frame(1).sourceColumn());
|
||||
break_count++;
|
||||
}
|
||||
|
||||
g();
|
||||
g();
|
||||
%OptimizeFunctionOnNextCall(g);
|
||||
|
||||
var Debug = debug.Debug;
|
||||
Debug.setListener(listener);
|
||||
|
||||
g();
|
||||
|
||||
Debug.setListener(null);
|
||||
|
||||
assertEquals(1, break_count);
|
22
test/mjsunit/ignition/optimized-stack-trace.js
Normal file
22
test/mjsunit/ignition/optimized-stack-trace.js
Normal file
@ -0,0 +1,22 @@
|
||||
// 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.
|
||||
|
||||
// Flags: --allow-natives-syntax
|
||||
|
||||
// Test that PC in optimized frame would correctly translate into
|
||||
// unoptimized frame when collecting stack trace.
|
||||
|
||||
function f() {
|
||||
return new Error().stack;
|
||||
}
|
||||
|
||||
function g(x) {
|
||||
return f();
|
||||
}
|
||||
|
||||
g();
|
||||
g();
|
||||
%OptimizeFunctionOnNextCall(g);
|
||||
print(g());
|
||||
assertTrue(/g \(.*?\.js:15:10\)/.test(g()));
|
@ -780,6 +780,12 @@
|
||||
}], # 'arch == ppc and simulator_run == True'
|
||||
|
||||
['ignition == True', {
|
||||
# TODO(rmcilroy, 4689): FrameInspector does not translate interpreted frame.
|
||||
'ignition/optimized-debug-frame': [FAIL],
|
||||
|
||||
# TODO(rmcilroy, 4689): Translated code offset for FrameSummary is wrong.
|
||||
'ignition/optimized-stack-trace': [FAIL],
|
||||
|
||||
# TODO(yangguo,4690): assertion failures in debugger tests.
|
||||
'debug-allscopes-on-debugger': [FAIL],
|
||||
'debug-return-value': [FAIL],
|
||||
|
Loading…
Reference in New Issue
Block a user