Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(324)

Issue 2636913002: [liveedit] reimplement frame restarting. (Closed)

Created:
3 years, 11 months ago by Yang
Modified:
3 years, 10 months ago
CC:
v8-reviews_googlegroups.com, rmcilroy
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[liveedit] reimplement frame restarting. Previously, when restarting a frame, we would rewrite all frames between the debugger activation and the frame to restart to squash them, and replace the return address with that of a builtin to leave that rewritten frame, and restart the function by calling it. We now simply remember the frame to drop to, and upon returning from the debugger, we check whether to drop the frame, load the new FP, and restart the function. R=jgruber@chromium.org, mstarzinger@chromium.org BUG=v8:5587 Review-Url: https://codereview.chromium.org/2636913002 Cr-Commit-Position: refs/heads/master@{#42725} Committed: https://chromium.googlesource.com/v8/v8/+/3f47c63ded839194989ba69c3039ea073636ef30

Patch Set 1 #

Total comments: 15

Patch Set 2 : rebase #

Patch Set 3 : rebase #

Patch Set 4 : Address comments. #

Patch Set 5 : fix #

Patch Set 6 : rebase and rest of the ports #

Patch Set 7 : small fixes #

Patch Set 8 : also deal with optimized code. #

Patch Set 9 : fix issue with optimized frame. #

Patch Set 10 : rebase #

Patch Set 11 : fix for deoptimization #

Patch Set 12 : fix operator property #

Patch Set 13 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+594 lines, -732 lines) Patch
M src/arm/interface-descriptors-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +8 lines, -0 lines 0 comments Download
M src/arm/macro-assembler-arm.h View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M src/arm/macro-assembler-arm.cc View 1 2 3 4 5 1 chunk +10 lines, -0 lines 0 comments Download
M src/arm64/interface-descriptors-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +8 lines, -0 lines 0 comments Download
M src/arm64/macro-assembler-arm64.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M src/arm64/macro-assembler-arm64.cc View 1 2 3 4 5 1 chunk +10 lines, -0 lines 0 comments Download
M src/assembler.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -0 lines 0 comments Download
M src/assembler.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +5 lines, -6 lines 0 comments Download
M src/bailout-reason.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -0 lines 0 comments Download
M src/builtins/builtins.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -1 line 0 comments Download
M src/builtins/builtins-debug.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +6 lines, -2 lines 0 comments Download
M src/code-factory.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -0 lines 0 comments Download
M src/code-factory.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +12 lines, -0 lines 0 comments Download
M src/compiler/ast-graph-builder.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -2 lines 0 comments Download
M src/compiler/bytecode-graph-builder.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -3 lines 0 comments Download
M src/compiler/js-generic-lowering.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +5 lines, -0 lines 0 comments Download
M src/compiler/js-operator.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/js-operator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/opcodes.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +3 lines, -2 lines 0 comments Download
M src/compiler/operator-properties.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/typer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -0 lines 0 comments Download
M src/compiler/verifier.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -0 lines 0 comments Download
M src/debug/arm/debug-arm.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +29 lines, -42 lines 0 comments Download
M src/debug/arm64/debug-arm64.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +30 lines, -40 lines 0 comments Download
M src/debug/debug.h View 1 2 3 4 5 6 7 8 9 10 11 12 8 chunks +19 lines, -29 lines 0 comments Download
M src/debug/debug.cc View 1 2 3 4 5 6 7 8 9 10 11 12 7 chunks +25 lines, -17 lines 0 comments Download
M src/debug/ia32/debug-ia32.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +26 lines, -43 lines 0 comments Download
M src/debug/liveedit.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +0 lines, -36 lines 0 comments Download
M src/debug/liveedit.cc View 1 2 3 4 5 8 9 6 chunks +11 lines, -275 lines 0 comments Download
M src/debug/mips/debug-mips.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +30 lines, -40 lines 0 comments Download
M src/debug/mips64/debug-mips64.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +31 lines, -40 lines 0 comments Download
M src/debug/x64/debug-x64.cc View 1 2 3 4 5 6 7 8 9 10 3 chunks +28 lines, -50 lines 0 comments Download
M src/external-reference-table.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +2 lines, -2 lines 0 comments Download
M src/full-codegen/full-codegen.cc View 1 chunk +1 line, -1 line 0 comments Download
M src/globals.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +0 lines, -14 lines 0 comments Download
M src/ia32/interface-descriptors-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +8 lines, -0 lines 0 comments Download
M src/ia32/macro-assembler-ia32.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -0 lines 0 comments Download
M src/ia32/macro-assembler-ia32.cc View 1 2 3 4 5 6 7 8 9 2 chunks +11 lines, -0 lines 0 comments Download
M src/interface-descriptors.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +6 lines, -0 lines 0 comments Download
M src/interface-descriptors.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +8 lines, -0 lines 0 comments Download
M src/interpreter/interpreter.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +2 lines, -1 line 0 comments Download
M src/interpreter/interpreter-assembler.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -0 lines 0 comments Download
M src/interpreter/interpreter-assembler.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +20 lines, -0 lines 0 comments Download
M src/mips/interface-descriptors-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +8 lines, -0 lines 0 comments Download
M src/mips/macro-assembler-mips.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M src/mips/macro-assembler-mips.cc View 1 2 3 4 5 1 chunk +9 lines, -0 lines 0 comments Download
M src/mips64/interface-descriptors-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +8 lines, -0 lines 0 comments Download
M src/mips64/macro-assembler-mips64.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M src/mips64/macro-assembler-mips64.cc View 1 2 3 4 5 1 chunk +9 lines, -0 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +0 lines, -1 line 0 comments Download
M src/runtime/runtime-debug.cc View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +4 lines, -29 lines 0 comments Download
M src/x64/interface-descriptors-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +8 lines, -0 lines 0 comments Download
M src/x64/macro-assembler-x64.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -0 lines 0 comments Download
M src/x64/macro-assembler-x64.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +13 lines, -7 lines 0 comments Download
M test/cctest/test-disasm-ia32.cc View 1 2 3 4 5 1 chunk +0 lines, -3 lines 0 comments Download
M test/cctest/test-disasm-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +0 lines, -3 lines 0 comments Download
M test/debugger/debug/debug-liveedit-check-stack.js View 1 chunk +20 lines, -1 line 0 comments Download
A test/debugger/debug/debug-liveedit-replace-code.js View 1 2 3 4 5 6 7 8 9 10 1 chunk +33 lines, -0 lines 0 comments Download
M test/debugger/debug/es6/debug-liveedit-new-target-1.js View 1 chunk +20 lines, -1 line 0 comments Download
M test/debugger/debug/es6/debug-liveedit-new-target-2.js View 1 chunk +20 lines, -1 line 0 comments Download
M test/debugger/debug/es6/debug-liveedit-new-target-3.js View 1 chunk +20 lines, -1 line 0 comments Download
M test/debugger/debug/es6/generators-debug-liveedit.js View 2 chunks +20 lines, -1 line 0 comments Download
M test/debugger/debug/es8/debug-async-liveedit.js View 2 chunks +20 lines, -1 line 0 comments Download
M test/debugger/debugger.status View 2 chunks +0 lines, -17 lines 0 comments Download
D test/mjsunit/regress/regress-crbug-505007-2.js View 1 chunk +0 lines, -20 lines 0 comments Download

Messages

Total messages: 40 (26 generated)
Yang
3 years, 11 months ago (2017-01-16 14:59:40 UTC) #1
Michael Starzinger
LGTM on the plumbing outside the debugger. Cool stuff, I like it.
3 years, 11 months ago (2017-01-17 11:53:35 UTC) #2
jgruber
This looks great, much simpler than the previous solution. lgtm with comments. https://codereview.chromium.org/2636913002/diff/1/src/debug/debug.h File src/debug/debug.h ...
3 years, 11 months ago (2017-01-17 13:29:59 UTC) #3
Michael Starzinger
https://codereview.chromium.org/2636913002/diff/1/src/interpreter/interpreter-assembler.cc File src/interpreter/interpreter-assembler.cc (right): https://codereview.chromium.org/2636913002/diff/1/src/interpreter/interpreter-assembler.cc#newcode1189 src/interpreter/interpreter-assembler.cc:1189: Node* new_fp = Load(MachineType::TaggedPointer(), new_fp_address); On 2017/01/17 13:29:58, jgruber ...
3 years, 11 months ago (2017-01-17 14:45:28 UTC) #4
Yang
https://codereview.chromium.org/2636913002/diff/1/src/debug/debug.h File src/debug/debug.h (right): https://codereview.chromium.org/2636913002/diff/1/src/debug/debug.h#newcode564 src/debug/debug.h:564: // Drop to a lower a frame. On 2017/01/17 ...
3 years, 11 months ago (2017-01-18 07:49:08 UTC) #5
jgruber
Thanks, still lgtm.
3 years, 11 months ago (2017-01-18 09:10:38 UTC) #6
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2636913002/120001
3 years, 11 months ago (2017-01-19 12:07:51 UTC) #9
commit-bot: I haz the power
Try jobs failed on following builders: v8_mac_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_mac_rel_ng/builds/15968) v8_mac_rel_ng_triggered on master.tryserver.v8 (JOB_FAILED, ...
3 years, 11 months ago (2017-01-19 12:31:01 UTC) #11
Yang
On 2017/01/19 12:31:01, commit-bot: I haz the power wrote: > Try jobs failed on following ...
3 years, 11 months ago (2017-01-20 06:14:46 UTC) #12
Yang
On 2017/01/20 06:14:46, Yang wrote: > On 2017/01/19 12:31:01, commit-bot: I haz the power wrote: ...
3 years, 11 months ago (2017-01-24 14:44:17 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2636913002/220001
3 years, 11 months ago (2017-01-26 08:30:11 UTC) #32
commit-bot: I haz the power
Failed to apply patch for src/external-reference-table.cc: While running git apply --index -p1; error: patch failed: ...
3 years, 11 months ago (2017-01-26 09:05:07 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2636913002/240001
3 years, 10 months ago (2017-01-27 06:55:27 UTC) #37
commit-bot: I haz the power
3 years, 10 months ago (2017-01-27 07:31:13 UTC) #40
Message was sent while issue was closed.
Committed patchset #13 (id:240001) as
https://chromium.googlesource.com/v8/v8/+/3f47c63ded839194989ba69c3039ea07363...

Powered by Google App Engine
This is Rietveld 408576698