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

Issue 106053011: Make return statements single steppable (Closed)

Created:
6 years, 11 months ago by hausner
Modified:
6 years, 11 months ago
Reviewers:
srdjan
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Make return statements single steppable Replace the code smashing breakpoints at function returns with a call to a runtime stub that checks whether the debugger is single stepping. The call to the stub is only emitted in unoptimized code. R=srdjan@google.com Committed: https://code.google.com/p/dart/source/detail?r=31435

Patch Set 1 #

Total comments: 2

Patch Set 2 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+246 lines, -225 lines) Patch
M runtime/tests/vm/vm.status View 1 chunk +0 lines, -2 lines 0 comments Download
M runtime/vm/assembler_x64.h View 1 chunk +0 lines, -1 line 0 comments Download
M runtime/vm/assembler_x64.cc View 1 chunk +0 lines, -11 lines 0 comments Download
M runtime/vm/debugger.h View 1 chunk +0 lines, -2 lines 0 comments Download
M runtime/vm/debugger.cc View 5 chunks +10 lines, -20 lines 0 comments Download
M runtime/vm/debugger_api_impl_test.cc View 3 chunks +18 lines, -17 lines 0 comments Download
M runtime/vm/debugger_arm.cc View 1 chunk +0 lines, -30 lines 0 comments Download
M runtime/vm/debugger_ia32.cc View 1 chunk +0 lines, -29 lines 0 comments Download
M runtime/vm/debugger_mips.cc View 1 chunk +0 lines, -52 lines 0 comments Download
M runtime/vm/debugger_x64.cc View 1 chunk +0 lines, -36 lines 0 comments Download
M runtime/vm/flow_graph_builder.cc View 1 chunk +5 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 1 chunk +5 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 2 chunks +23 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 1 2 chunks +28 lines, -7 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 1 2 chunks +28 lines, -7 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 1 2 chunks +28 lines, -6 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 1 2 chunks +30 lines, -5 lines 0 comments Download
M runtime/vm/stub_code.h View 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/stub_code_arm.cc View 1 chunk +17 lines, -0 lines 0 comments Download
M runtime/vm/stub_code_ia32.cc View 1 chunk +17 lines, -0 lines 0 comments Download
M runtime/vm/stub_code_mips.cc View 1 chunk +19 lines, -0 lines 0 comments Download
M runtime/vm/stub_code_x64.cc View 1 chunk +17 lines, -0 lines 0 comments Download

Messages

Total messages: 4 (0 generated)
hausner
Happy New Year! :-)
6 years, 11 months ago (2014-01-02 20:30:08 UTC) #1
srdjan
LGTM https://codereview.chromium.org/106053011/diff/1/runtime/vm/intermediate_language.h File runtime/vm/intermediate_language.h (right): https://codereview.chromium.org/106053011/diff/1/runtime/vm/intermediate_language.h#newcode3431 runtime/vm/intermediate_language.h:3431: virtual EffectSet Effects() const { return EffectSet::None(); } ...
6 years, 11 months ago (2014-01-02 21:24:56 UTC) #2
hausner
Committed patchset #2 manually as r31435 (presubmit successful).
6 years, 11 months ago (2014-01-02 23:32:02 UTC) #3
hausner
6 years, 11 months ago (2014-01-03 00:43:29 UTC) #4
Message was sent while issue was closed.
Done. Also added a Canonicalize method to the new Instruction as discussed
offline to address the performance issues we detected.

https://codereview.chromium.org/106053011/diff/1/runtime/vm/intermediate_lang...
File runtime/vm/intermediate_language.h (right):

https://codereview.chromium.org/106053011/diff/1/runtime/vm/intermediate_lang...
runtime/vm/intermediate_language.h:3431: virtual EffectSet Effects() const {
return EffectSet::None(); }
On 2014/01/02 21:24:56, srdjan wrote:
> This may need to be EffectSet::All, as each single step could modify any
object.
> It does not matter in its currently used context, but is probably right thing
to
> specify.

Done.

Powered by Google App Engine
This is Rietveld 408576698