v8/test/inspector
kozyatinskiy e27d18c943 [debugger] tuned StepNext and StepOut at return position
Proposed behaviour:
- StepNext at return position go into next function call (no changes with current behavior, but implemented in v8::Debug instead of hack on inspector side);
- StepOut at return position go into next non-current function call.

We need this to have better stepping in cases with native functions, blackboxed functions and/or different embedder calls (e.g. event listeners).

New behavior could be illustrated with two examples (for more see stepping-with-natives-and-frameworks test):
- let's assume that we've blackboxed callAll function, this function just takes its arguments and call one after another:
var foo = () => 1;
callAll(foo, foo, () => 2);
If we break inside of first call of function foo. Then on..
..StepNext - we're able to reach second call of function foo,
..StepOut - we're able to reach () => 2 call.

- let's consider case with native function:
[1,2,3].map(x => x * 2)
If we break inside of first callback call, then with StepNext we can iterate through all calls of callback, with StepOut we go to next statement after .map call.

Implementation details:
- when we request break we schedule step-in function call for any step action at return position and for step-in at any position,
- when we request StepOut at return position - we mark current function as needed-to-be-ignored inside of PrepareStepIn(function) call,
- when we request StepOut at not return position - we set break at return position and ask debugger to just repeat last step action on next stepping-related break.

Design doc: https://docs.google.com/document/d/1ihXHOIhP_q-fJCA0e2EiXz_Zr3B08KMjaPifcaqZ60Q/edit

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

Review-Url: https://codereview.chromium.org/2758483002
Cr-Commit-Position: refs/heads/master@{#44028}
2017-03-22 14:16:18 +00:00
..
console [inspector] added reconnect method for tests 2017-02-28 20:22:24 +00:00
cpu-profiler [debug] use best effort coverage when enabling precise coverage. 2017-03-21 08:55:44 +00:00
debugger [debugger] tuned StepNext and StepOut at return position 2017-03-22 14:16:18 +00:00
heap-profiler [inspector] added reconnect method for tests 2017-02-28 20:22:24 +00:00
runtime [inspector] added createContextGroup for tests 2017-03-07 22:30:05 +00:00
BUILD.gn Properly define v8_enable_inspector and its override in GN. 2016-11-21 19:29:38 +00:00
DEPS [inspector] introduce limit for amount of stored async stacks 2016-12-18 17:04:40 +00:00
inspector-impl.cc [inspector] added createContextGroup for tests 2017-03-07 22:30:05 +00:00
inspector-impl.h [inspector] added createContextGroup for tests 2017-03-07 22:30:05 +00:00
inspector-test.cc [gn] Enable stricter build flags 2017-03-17 15:18:18 +00:00
inspector.gyp Fix inspector test in components build 2016-10-18 20:08:12 +00:00
inspector.isolate [inspector] conditionally copy files for inspector test. 2016-10-24 10:57:37 +00:00
inspector.status [inspector] Enable debugger/pause-on-oom test with larger heap limit. 2017-03-02 17:49:15 +00:00
json-parse-expected.txt [inspector] added inspector test runner [part 5] 2016-10-02 21:23:03 +00:00
json-parse.js [inspector] added inspector test runner [part 5] 2016-10-02 21:23:03 +00:00
OWNERS [inspector] added inspector test runner [part 1] 2016-09-30 15:52:46 +00:00
protocol-test.js [debugger] tuned StepNext and StepOut at return position 2017-03-22 14:16:18 +00:00
task-runner.cc [inspector] added createContextGroup for tests 2017-03-07 22:30:05 +00:00
task-runner.h [inspector] added createContextGroup for tests 2017-03-07 22:30:05 +00:00
testcfg.py [inspector] added master test for break locations 2017-02-27 20:20:39 +00:00