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

Unified Diff: runtime/vm/kernel_to_il.cc

Issue 2664143002: Revert "Debugging in kernel shaping up." (Closed)
Patch Set: Revert "Debugging in kernel shaping up." Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/kernel_reader.cc ('k') | runtime/vm/object.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/kernel_to_il.cc
diff --git a/runtime/vm/kernel_to_il.cc b/runtime/vm/kernel_to_il.cc
index 5c2da64386508f519533c888b9a1b2bbeda37f15..11a84e2ffe6f9bbc55a57a82685f8b6ff037a375 100644
--- a/runtime/vm/kernel_to_il.cc
+++ b/runtime/vm/kernel_to_il.cc
@@ -366,20 +366,6 @@ ScopeBuildingResult* ScopeBuilder::BuildScopes() {
// will forward the call to the real function.
// -> see BuildGraphOfImplicitClosureFunction
if (!function.IsImplicitClosureFunction()) {
- // TODO(jensj): HACK: Push the begin token to after any parameters to
- // avoid crash when breaking on definition line of async method in
- // debugger. It seems that another scope needs to be added
- // in which captures are made, but I can't make that work.
- // This 'solution' doesn't crash, but I cannot see the parameters at
- // that particular breakpoint either.
- // Also push the end token to after the "}" to avoid crashing on
- // stepping past the last line (to the "}" character).
- if (node->body() != NULL && node->body()->position().IsReal()) {
- scope_->set_begin_token_pos(node->body()->position());
- }
- if (scope_->end_token_pos().IsReal()) {
- scope_->set_end_token_pos(scope_->end_token_pos().Next());
- }
node_->AcceptVisitor(this);
}
break;
@@ -2549,20 +2535,10 @@ Fragment FlowGraphBuilder::PushArgument() {
Fragment FlowGraphBuilder::Return(TokenPosition position) {
Value* value = Pop();
ASSERT(stack_ == NULL);
-
- Fragment fragment;
-
- const Function& function = parsed_function_->function();
- if (FLAG_support_debugger && position.IsDebugPause() &&
- !function.is_native()) {
- fragment <<=
- new (Z) DebugStepCheckInstr(position, RawPcDescriptors::kRuntimeCall);
- }
-
- ReturnInstr* return_instr = new (Z) ReturnInstr(position, value);
+ ReturnInstr* return_instr =
+ new (Z) ReturnInstr(TokenPosition::kNoSource, value);
if (exit_collector_ != NULL) exit_collector_->AddExit(return_instr);
- fragment <<= return_instr;
- return fragment.closed();
+ return Fragment(return_instr).closed();
}
@@ -2686,17 +2662,6 @@ Fragment FlowGraphBuilder::StoreLocal(TokenPosition position,
StoreInstanceField(Context::variable_offset(variable->index()));
} else {
Value* value = Pop();
- if (FLAG_support_debugger && position.IsDebugPause() &&
- !variable->IsInternal()) {
- if (value->definition()->IsConstant() ||
- value->definition()->IsAllocateObject() ||
- (value->definition()->IsLoadLocal() &&
- !value->definition()->AsLoadLocal()->local().IsInternal())) {
- instructions <<= new (Z)
- DebugStepCheckInstr(position, RawPcDescriptors::kRuntimeCall);
- }
- }
-
StoreLocalInstr* store =
new (Z) StoreLocalInstr(*variable, value, position);
instructions <<= store;
@@ -3210,32 +3175,6 @@ FlowGraph* FlowGraphBuilder::BuildGraphOfFunction(FunctionNode* function,
context_depth_ = current_context_depth;
}
- if (FLAG_support_debugger && function->position().IsDebugPause() &&
- !dart_function.is_native() && dart_function.is_debuggable()) {
- // If a switch was added above: Start the switch by injecting a debugable
- // safepoint so stepping over an await works.
- // If not, still start the body with a debugable safepoint to ensure
- // breaking on a method always happens, even if there are no
- // assignments/calls/runtimecalls in the first basic block.
- // Place this check at the last parameter to ensure parameters
- // are in scope in the debugger at method entry.
- const int num_params = dart_function.NumParameters();
- TokenPosition check_pos = TokenPosition::kNoSource;
- if (num_params > 0) {
- LocalScope* scope = parsed_function_->node_sequence()->scope();
- const LocalVariable& parameter = *scope->VariableAt(num_params - 1);
- check_pos = parameter.token_pos();
- }
- if (!check_pos.IsDebugPause()) {
- // No parameters or synthetic parameters.
- check_pos = function->position();
- ASSERT(check_pos.IsDebugPause());
- }
- Fragment check(
- new (Z) DebugStepCheckInstr(check_pos, RawPcDescriptors::kRuntimeCall));
- body = check + body;
- }
-
normal_entry->LinkTo(body.entry);
// When compiling for OSR, use a depth first search to prune instructions
« no previous file with comments | « runtime/vm/kernel_reader.cc ('k') | runtime/vm/object.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698