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

Issue 1233073005: Debugger: prepare code for debugging on a per-function basis. (Closed)

Created:
5 years, 5 months ago by Yang
Modified:
5 years, 5 months ago
CC:
v8-dev, Yang
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Debugger: prepare code for debugging on a per-function basis. Prior to this patch, we enter a global debug mode whenever a break point is set. By entering this mode, all code is deoptimized and activated frames are recompiled and redirected to newly compiled debug code. After this patch, we only deoptimize/redirect for functions we want to debug. Trigger for this is Debug::EnsureDebugInfo, and having DebugInfo object attached to the SFI prevents optimization/inlining. The result is that we can have optimized code for functions without break points alongside functions that do have break points, which are not optimized. R=mstarzinger@chromium.org, ulan@chromium.org BUG=v8:4132 LOG=Y Committed: https://crrev.com/35c28ce0a742e58346d2dea009428cacd442040d Cr-Commit-Position: refs/heads/master@{#29758}

Patch Set 1 #

Total comments: 18

Patch Set 2 : addressed comments #

Total comments: 2

Patch Set 3 : addressed comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+398 lines, -614 lines) Patch
M src/arm/assembler-arm-inl.h View 2 chunks +2 lines, -4 lines 0 comments Download
M src/arm64/assembler-arm64-inl.h View 2 chunks +2 lines, -4 lines 0 comments Download
M src/background-parsing-task.cc View 1 2 2 chunks +2 lines, -1 line 0 comments Download
M src/bailout-reason.h View 2 chunks +1 line, -1 line 0 comments Download
M src/compiler.h View 1 5 chunks +16 lines, -20 lines 0 comments Download
M src/compiler.cc View 1 13 chunks +54 lines, -69 lines 0 comments Download
M src/compiler/js-inlining.cc View 1 1 chunk +8 lines, -0 lines 0 comments Download
M src/debug.h View 1 2 4 chunks +9 lines, -4 lines 0 comments Download
M src/debug.cc View 1 28 chunks +171 lines, -397 lines 0 comments Download
M src/heap/mark-compact.cc View 1 1 chunk +1 line, -4 lines 0 comments Download
M src/hydrogen.cc View 1 chunk +4 lines, -0 lines 0 comments Download
M src/ia32/assembler-ia32-inl.h View 2 chunks +2 lines, -4 lines 0 comments Download
M src/ic/ic.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M src/liveedit.cc View 5 chunks +4 lines, -36 lines 0 comments Download
M src/mips/assembler-mips-inl.h View 2 chunks +2 lines, -4 lines 0 comments Download
M src/mips64/assembler-mips64-inl.h View 2 chunks +2 lines, -4 lines 0 comments Download
M src/objects.h View 2 chunks +10 lines, -0 lines 0 comments Download
M src/objects.cc View 1 chunk +21 lines, -0 lines 0 comments Download
M src/objects-inl.h View 1 chunk +18 lines, -0 lines 0 comments Download
M src/runtime/runtime-debug.cc View 2 chunks +9 lines, -54 lines 0 comments Download
M src/x64/assembler-x64-inl.h View 2 chunks +2 lines, -4 lines 0 comments Download
M test/cctest/test-debug.cc View 1 chunk +1 line, -1 line 0 comments Download
M test/cctest/test-func-name-inference.cc View 1 chunk +0 lines, -1 line 0 comments Download
M test/mjsunit/debug-evaluate.js View 1 chunk +1 line, -0 lines 0 comments Download
A test/mjsunit/debug-optimize.js View 1 chunk +54 lines, -0 lines 0 comments Download

Messages

Total messages: 18 (4 generated)
Yang
5 years, 5 months ago (2015-07-20 10:46:13 UTC) #1
Yang
Michael, please review the changes to compiler.cc, crankshaft and turbofan (wrt inlining). Ulan, please review ...
5 years, 5 months ago (2015-07-20 10:47:59 UTC) #2
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1233073005/1
5 years, 5 months ago (2015-07-20 10:48:56 UTC) #4
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 5 months ago (2015-07-20 11:13:58 UTC) #6
Michael Starzinger
Looking good, just minor comments. https://codereview.chromium.org/1233073005/diff/1/src/compiler.cc File src/compiler.cc (right): https://codereview.chromium.org/1233073005/diff/1/src/compiler.cc#newcode84 src/compiler.cc:84: explicit CompilationInfoWithZone(Handle<SharedFunctionInfo> shared) See ...
5 years, 5 months ago (2015-07-20 11:29:40 UTC) #7
Michael Starzinger
https://codereview.chromium.org/1233073005/diff/1/src/heap/objects-visiting-inl.h File src/heap/objects-visiting-inl.h (right): https://codereview.chromium.org/1233073005/diff/1/src/heap/objects-visiting-inl.h#newcode663 src/heap/objects-visiting-inl.h:663: if (shared_info->HasDebugInfo()) { Ouch, this is scary! Is this ...
5 years, 5 months ago (2015-07-20 11:33:41 UTC) #8
Michael Starzinger
https://codereview.chromium.org/1233073005/diff/1/src/debug.cc File src/debug.cc (left): https://codereview.chromium.org/1233073005/diff/1/src/debug.cc#oldcode1626 src/debug.cc:1626: heap->CollectAllGarbage(Heap::kMakeHeapIterableMask, As discussed offline: We might need to still ...
5 years, 5 months ago (2015-07-20 11:46:09 UTC) #9
Yang
https://codereview.chromium.org/1233073005/diff/1/src/compiler.cc File src/compiler.cc (right): https://codereview.chromium.org/1233073005/diff/1/src/compiler.cc#newcode84 src/compiler.cc:84: explicit CompilationInfoWithZone(Handle<SharedFunctionInfo> shared) On 2015/07/20 11:29:40, Michael Starzinger wrote: ...
5 years, 5 months ago (2015-07-20 12:13:47 UTC) #10
Michael Starzinger
LGTM on compiler and code flushing. Didn't look at the rest.
5 years, 5 months ago (2015-07-20 12:29:28 UTC) #11
ulan
debugger parts lgtm https://codereview.chromium.org/1233073005/diff/20001/test/cctest/test-api.cc File test/cctest/test-api.cc (left): https://codereview.chromium.org/1233073005/diff/20001/test/cctest/test-api.cc#oldcode20990 test/cctest/test-api.cc:20990: TEST(StreamingWithDebuggingDoesNotProduceParserCache) { Why is this removed?
5 years, 5 months ago (2015-07-20 13:22:47 UTC) #12
Yang
https://codereview.chromium.org/1233073005/diff/20001/test/cctest/test-api.cc File test/cctest/test-api.cc (left): https://codereview.chromium.org/1233073005/diff/20001/test/cctest/test-api.cc#oldcode20990 test/cctest/test-api.cc:20990: TEST(StreamingWithDebuggingDoesNotProduceParserCache) { On 2015/07/20 13:22:47, ulan wrote: > Why ...
5 years, 5 months ago (2015-07-20 14:25:00 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1233073005/40001
5 years, 5 months ago (2015-07-20 14:25:18 UTC) #16
commit-bot: I haz the power
Committed patchset #3 (id:40001)
5 years, 5 months ago (2015-07-20 14:53:33 UTC) #17
commit-bot: I haz the power
5 years, 5 months ago (2015-07-20 14:53:42 UTC) #18
Message was sent while issue was closed.
Patchset 3 (id:??) landed as
https://crrev.com/35c28ce0a742e58346d2dea009428cacd442040d
Cr-Commit-Position: refs/heads/master@{#29758}

Powered by Google App Engine
This is Rietveld 408576698