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

Side by Side Diff: runtime/vm/runtime_entry.cc

Issue 2981173002: Remove the debugger_ field from Isolate in a PRODUCT build (Closed)
Patch Set: Created 3 years, 5 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 unified diff | Download patch
« runtime/vm/object.cc ('K') | « runtime/vm/object.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/runtime_entry.h" 5 #include "vm/runtime_entry.h"
6 6
7 #include "vm/assembler.h" 7 #include "vm/assembler.h"
8 #include "vm/ast.h" 8 #include "vm/ast.h"
9 #include "vm/code_patcher.h" 9 #include "vm/code_patcher.h"
10 #include "vm/compiler.h" 10 #include "vm/compiler.h"
(...skipping 752 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 } 763 }
764 764
765 // Result of an invoke may be an unhandled exception, in which case we 765 // Result of an invoke may be an unhandled exception, in which case we
766 // rethrow it. 766 // rethrow it.
767 static void CheckResultError(const Object& result) { 767 static void CheckResultError(const Object& result) {
768 if (result.IsError()) { 768 if (result.IsError()) {
769 Exceptions::PropagateError(Error::Cast(result)); 769 Exceptions::PropagateError(Error::Cast(result));
770 } 770 }
771 } 771 }
772 772
773 #if !defined(TARGET_ARCH_DBC) 773 #if defined(PRODUCT)
774 DEFINE_RUNTIME_ENTRY(BreakpointRuntimeHandler, 0) {
775 UNREACHABLE();
776 return;
777 }
778 #elif !defined(TARGET_ARCH_DBC)
774 // Gets called from debug stub when code reaches a breakpoint 779 // Gets called from debug stub when code reaches a breakpoint
775 // set on a runtime stub call. 780 // set on a runtime stub call.
776 DEFINE_RUNTIME_ENTRY(BreakpointRuntimeHandler, 0) { 781 DEFINE_RUNTIME_ENTRY(BreakpointRuntimeHandler, 0) {
777 if (!FLAG_support_debugger) { 782 if (!FLAG_support_debugger) {
778 UNREACHABLE(); 783 UNREACHABLE();
779 return; 784 return;
780 } 785 }
781 DartFrameIterator iterator(thread, 786 DartFrameIterator iterator(thread,
782 StackFrameIterator::kNoCrossThreadIteration); 787 StackFrameIterator::kNoCrossThreadIteration);
783 StackFrame* caller_frame = iterator.NextFrame(); 788 StackFrame* caller_frame = iterator.NextFrame();
(...skipping 17 matching lines...) Expand all
801 } 806 }
802 const Error& error = Error::Handle(isolate->debugger()->PauseBreakpoint()); 807 const Error& error = Error::Handle(isolate->debugger()->PauseBreakpoint());
803 if (!error.IsNull()) { 808 if (!error.IsNull()) {
804 Exceptions::PropagateError(error); 809 Exceptions::PropagateError(error);
805 UNREACHABLE(); 810 UNREACHABLE();
806 } 811 }
807 } 812 }
808 #endif // !defined(TARGET_ARCH_DBC) 813 #endif // !defined(TARGET_ARCH_DBC)
809 814
810 DEFINE_RUNTIME_ENTRY(SingleStepHandler, 0) { 815 DEFINE_RUNTIME_ENTRY(SingleStepHandler, 0) {
816 #if defined(PRODUCT)
817 UNREACHABLE();
818 return;
819 #else
811 if (!FLAG_support_debugger) { 820 if (!FLAG_support_debugger) {
812 UNREACHABLE(); 821 UNREACHABLE();
813 return; 822 return;
814 } 823 }
815 const Error& error = 824 const Error& error =
816 Error::Handle(zone, isolate->debugger()->PauseStepping()); 825 Error::Handle(zone, isolate->debugger()->PauseStepping());
817 if (!error.IsNull()) { 826 if (!error.IsNull()) {
818 Exceptions::PropagateError(error); 827 Exceptions::PropagateError(error);
819 UNREACHABLE(); 828 UNREACHABLE();
820 } 829 }
830 #endif
821 } 831 }
822 832
823 // An instance call of the form o.f(...) could not be resolved. Check if 833 // An instance call of the form o.f(...) could not be resolved. Check if
824 // there is a getter with the same name. If so, invoke it. If the value is 834 // there is a getter with the same name. If so, invoke it. If the value is
825 // a closure, invoke it with the given arguments. If the value is a 835 // a closure, invoke it with the given arguments. If the value is a
826 // non-closure, attempt to invoke "call" on it. 836 // non-closure, attempt to invoke "call" on it.
827 static bool ResolveCallThroughGetter(const Instance& receiver, 837 static bool ResolveCallThroughGetter(const Instance& receiver,
828 const Class& receiver_class, 838 const Class& receiver_class,
829 const String& target_name, 839 const String& target_name,
830 const Array& arguments_descriptor, 840 const Array& arguments_descriptor,
(...skipping 853 matching lines...) Expand 10 before | Expand all | Expand 10 after
1684 JSONStream js; 1694 JSONStream js;
1685 // Maybe adjust the rate of future reloads. 1695 // Maybe adjust the rate of future reloads.
1686 isolate->MaybeIncreaseReloadEveryNStackOverflowChecks(); 1696 isolate->MaybeIncreaseReloadEveryNStackOverflowChecks();
1687 // Issue a reload. 1697 // Issue a reload.
1688 bool success = isolate->ReloadSources(&js, true /* force_reload */); 1698 bool success = isolate->ReloadSources(&js, true /* force_reload */);
1689 if (!success) { 1699 if (!success) {
1690 FATAL1("*** Isolate reload failed:\n%s\n", js.ToCString()); 1700 FATAL1("*** Isolate reload failed:\n%s\n", js.ToCString());
1691 } 1701 }
1692 #endif 1702 #endif
1693 } 1703 }
1704 #if !defined(PRODUCT)
1694 if (FLAG_support_debugger && do_stacktrace) { 1705 if (FLAG_support_debugger && do_stacktrace) {
1695 String& var_name = String::Handle(); 1706 String& var_name = String::Handle();
1696 Instance& var_value = Instance::Handle(); 1707 Instance& var_value = Instance::Handle();
1697 // Collecting the stack trace and accessing local variables 1708 // Collecting the stack trace and accessing local variables
1698 // of frames may trigger parsing of functions to compute 1709 // of frames may trigger parsing of functions to compute
1699 // variable descriptors of functions. Parsing may trigger 1710 // variable descriptors of functions. Parsing may trigger
1700 // code execution, e.g. to compute compile-time constants. Thus, 1711 // code execution, e.g. to compute compile-time constants. Thus,
1701 // disable FLAG_stacktrace_every during trace collection to prevent 1712 // disable FLAG_stacktrace_every during trace collection to prevent
1702 // recursive stack trace collection. 1713 // recursive stack trace collection.
1703 intptr_t saved_stacktrace_every = FLAG_stacktrace_every; 1714 intptr_t saved_stacktrace_every = FLAG_stacktrace_every;
(...skipping 12 matching lines...) Expand all
1716 TokenPosition unused = TokenPosition::kNoSource; 1727 TokenPosition unused = TokenPosition::kNoSource;
1717 for (intptr_t v = 0; v < num_vars; v++) { 1728 for (intptr_t v = 0; v < num_vars; v++) {
1718 frame->VariableAt(v, &var_name, &unused, &unused, &unused, &var_value); 1729 frame->VariableAt(v, &var_name, &unused, &unused, &unused, &var_value);
1719 } 1730 }
1720 } 1731 }
1721 if (FLAG_stress_async_stacks) { 1732 if (FLAG_stress_async_stacks) {
1722 Debugger::CollectAwaiterReturnStackTrace(); 1733 Debugger::CollectAwaiterReturnStackTrace();
1723 } 1734 }
1724 FLAG_stacktrace_every = saved_stacktrace_every; 1735 FLAG_stacktrace_every = saved_stacktrace_every;
1725 } 1736 }
1737 #endif // !defined(PRODUCT)
1726 1738
1727 const Error& error = Error::Handle(thread->HandleInterrupts()); 1739 const Error& error = Error::Handle(thread->HandleInterrupts());
1728 if (!error.IsNull()) { 1740 if (!error.IsNull()) {
1729 Exceptions::PropagateError(error); 1741 Exceptions::PropagateError(error);
1730 UNREACHABLE(); 1742 UNREACHABLE();
1731 } 1743 }
1732 1744
1733 if ((stack_overflow_flags & Thread::kOsrRequest) != 0) { 1745 if ((stack_overflow_flags & Thread::kOsrRequest) != 0) {
1734 ASSERT(isolate->use_osr()); 1746 ASSERT(isolate->use_osr());
1735 DartFrameIterator iterator(thread, 1747 DartFrameIterator iterator(thread,
(...skipping 629 matching lines...) Expand 10 before | Expand all | Expand 10 after
2365 true /* is_float */, 2377 true /* is_float */,
2366 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&tan))); 2378 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&tan)));
2367 2379
2368 DEFINE_RAW_LEAF_RUNTIME_ENTRY( 2380 DEFINE_RAW_LEAF_RUNTIME_ENTRY(
2369 LibcAtan, 2381 LibcAtan,
2370 1, 2382 1,
2371 true /* is_float */, 2383 true /* is_float */,
2372 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&atan))); 2384 reinterpret_cast<RuntimeFunction>(static_cast<UnaryMathCFunction>(&atan)));
2373 2385
2374 } // namespace dart 2386 } // namespace dart
OLDNEW
« runtime/vm/object.cc ('K') | « runtime/vm/object.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698