From 12bc4034e0fc0b9bed34dd74a5d3099f26ccd2ba Mon Sep 17 00:00:00 2001 From: "sgjesse@chromium.org" Date: Fri, 3 Oct 2008 09:57:18 +0000 Subject: [PATCH] Refactored the logic for entering the debugger into one abstraction EnterDebugger. Removed the static initializer for Top::break_access_. Review URL: http://codereview.chromium.org/6234 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/debug.cc | 35 +++++++++++++++++------------------ src/debug.h | 46 +++++++++++++++++++++++++--------------------- src/mirror-delay.js | 2 +- src/runtime.cc | 11 +++++++---- src/top.cc | 3 ++- 5 files changed, 52 insertions(+), 45 deletions(-) diff --git a/src/debug.cc b/src/debug.cc index b6925aa..e3fcb7b 100644 --- a/src/debug.cc +++ b/src/debug.cc @@ -631,8 +631,11 @@ Object* Debug::Break(Arguments args) { return Heap::undefined_value(); } - SaveBreakFrame save; - EnterDebuggerContext enter; + // Enter the debugger. + EnterDebugger debugger; + if (debugger.FailedToEnter()) { + return Heap::undefined_value(); + } // Postpone interrupt during breakpoint processing. PostponeInterruptsScope postpone; @@ -1415,10 +1418,9 @@ void Debugger::OnException(Handle exception, bool uncaught) { if (!Debug::break_on_exception()) return; } - // Enter the debugger. Bail out if the debugger cannot be loaded. - if (!Debug::Load()) return; - SaveBreakFrame save; - EnterDebuggerContext enter; + // Enter the debugger. + EnterDebugger debugger; + if (debugger.FailedToEnter()) return; // Clear all current stepping setup. Debug::ClearStepping(); @@ -1479,10 +1481,9 @@ void Debugger::OnBeforeCompile(Handle