| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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/isolate.h" | 5 #include "vm/isolate.h" |
| 6 | 6 |
| 7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
| 8 #include "include/dart_native_api.h" | 8 #include "include/dart_native_api.h" |
| 9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
| 10 #include "platform/text_buffer.h" | 10 #include "platform/text_buffer.h" |
| (...skipping 1933 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1944 { | 1944 { |
| 1945 JSONObject jsheap(&jsobj, "_heaps"); | 1945 JSONObject jsheap(&jsobj, "_heaps"); |
| 1946 heap()->PrintToJSONObject(Heap::kNew, &jsheap); | 1946 heap()->PrintToJSONObject(Heap::kNew, &jsheap); |
| 1947 heap()->PrintToJSONObject(Heap::kOld, &jsheap); | 1947 heap()->PrintToJSONObject(Heap::kOld, &jsheap); |
| 1948 } | 1948 } |
| 1949 | 1949 |
| 1950 jsobj.AddProperty("runnable", is_runnable()); | 1950 jsobj.AddProperty("runnable", is_runnable()); |
| 1951 jsobj.AddProperty("livePorts", message_handler()->live_ports()); | 1951 jsobj.AddProperty("livePorts", message_handler()->live_ports()); |
| 1952 jsobj.AddProperty("pauseOnExit", message_handler()->should_pause_on_exit()); | 1952 jsobj.AddProperty("pauseOnExit", message_handler()->should_pause_on_exit()); |
| 1953 | 1953 |
| 1954 if (message_handler()->is_paused_on_start()) { | 1954 if (debugger() != NULL) { |
| 1955 ASSERT(debugger()->PauseEvent() == NULL); | 1955 if (message_handler()->is_paused_on_start()) { |
| 1956 ServiceEvent pause_event(this, ServiceEvent::kPauseStart); | 1956 ASSERT(debugger()->PauseEvent() == NULL); |
| 1957 jsobj.AddProperty("pauseEvent", &pause_event); | 1957 ServiceEvent pause_event(this, ServiceEvent::kPauseStart); |
| 1958 } else if (message_handler()->is_paused_on_exit()) { | 1958 jsobj.AddProperty("pauseEvent", &pause_event); |
| 1959 ASSERT(debugger()->PauseEvent() == NULL); | 1959 } else if (message_handler()->is_paused_on_exit()) { |
| 1960 ServiceEvent pause_event(this, ServiceEvent::kPauseExit); | 1960 ASSERT(debugger()->PauseEvent() == NULL); |
| 1961 jsobj.AddProperty("pauseEvent", &pause_event); | 1961 ServiceEvent pause_event(this, ServiceEvent::kPauseExit); |
| 1962 } else if (debugger()->PauseEvent() != NULL && !resume_request_) { | 1962 jsobj.AddProperty("pauseEvent", &pause_event); |
| 1963 ServiceEvent pause_event(debugger()->PauseEvent()); | 1963 } else if (debugger()->PauseEvent() != NULL && !resume_request_) { |
| 1964 jsobj.AddProperty("pauseEvent", &pause_event); | 1964 ServiceEvent pause_event(debugger()->PauseEvent()); |
| 1965 } else { | 1965 jsobj.AddProperty("pauseEvent", &pause_event); |
| 1966 ServiceEvent pause_event(this, ServiceEvent::kResume); | 1966 } else { |
| 1967 ServiceEvent pause_event(this, ServiceEvent::kResume); |
| 1967 | 1968 |
| 1968 // TODO(turnidge): Don't compute a full stack trace. | 1969 // TODO(turnidge): Don't compute a full stack trace. |
| 1969 DebuggerStackTrace* stack = debugger()->StackTrace(); | 1970 DebuggerStackTrace* stack = debugger()->StackTrace(); |
| 1970 if (stack->Length() > 0) { | 1971 if (stack->Length() > 0) { |
| 1971 pause_event.set_top_frame(stack->FrameAt(0)); | 1972 pause_event.set_top_frame(stack->FrameAt(0)); |
| 1973 } |
| 1974 jsobj.AddProperty("pauseEvent", &pause_event); |
| 1972 } | 1975 } |
| 1973 jsobj.AddProperty("pauseEvent", &pause_event); | 1976 |
| 1977 jsobj.AddProperty("exceptionPauseMode", |
| 1978 ExceptionPauseInfoToServiceEnum(debugger()->GetExceptionPauseInfo())); |
| 1974 } | 1979 } |
| 1975 | 1980 |
| 1976 jsobj.AddProperty("exceptionPauseMode", | |
| 1977 ExceptionPauseInfoToServiceEnum(debugger()->GetExceptionPauseInfo())); | |
| 1978 | |
| 1979 const Library& lib = | 1981 const Library& lib = |
| 1980 Library::Handle(object_store()->root_library()); | 1982 Library::Handle(object_store()->root_library()); |
| 1981 if (!lib.IsNull()) { | 1983 if (!lib.IsNull()) { |
| 1982 jsobj.AddProperty("rootLib", lib); | 1984 jsobj.AddProperty("rootLib", lib); |
| 1983 } | 1985 } |
| 1984 | 1986 |
| 1985 { | 1987 { |
| 1986 JSONObject tagCounters(&jsobj, "_tagCounters"); | 1988 JSONObject tagCounters(&jsobj, "_tagCounters"); |
| 1987 vm_tag_counters()->PrintToJSONObject(&tagCounters); | 1989 vm_tag_counters()->PrintToJSONObject(&tagCounters); |
| 1988 } | 1990 } |
| 1989 if (Thread::Current()->sticky_error() != Object::null()) { | 1991 if (Thread::Current()->sticky_error() != Object::null()) { |
| 1990 Error& error = Error::Handle(Thread::Current()->sticky_error()); | 1992 Error& error = Error::Handle(Thread::Current()->sticky_error()); |
| 1991 ASSERT(!error.IsNull()); | 1993 ASSERT(!error.IsNull()); |
| 1992 jsobj.AddProperty("error", error, false); | 1994 jsobj.AddProperty("error", error, false); |
| 1993 } | 1995 } |
| 1994 | 1996 |
| 1995 { | 1997 { |
| 1996 const GrowableObjectArray& libs = | 1998 const GrowableObjectArray& libs = |
| 1997 GrowableObjectArray::Handle(object_store()->libraries()); | 1999 GrowableObjectArray::Handle(object_store()->libraries()); |
| 1998 intptr_t num_libs = libs.Length(); | 2000 intptr_t num_libs = libs.Length(); |
| 1999 Library& lib = Library::Handle(); | 2001 Library& lib = Library::Handle(); |
| 2000 | 2002 |
| 2001 JSONArray lib_array(&jsobj, "libraries"); | 2003 JSONArray lib_array(&jsobj, "libraries"); |
| 2002 for (intptr_t i = 0; i < num_libs; i++) { | 2004 for (intptr_t i = 0; i < num_libs; i++) { |
| 2003 lib ^= libs.At(i); | 2005 lib ^= libs.At(i); |
| 2004 ASSERT(!lib.IsNull()); | 2006 ASSERT(!lib.IsNull()); |
| 2005 lib_array.AddValue(lib); | 2007 lib_array.AddValue(lib); |
| 2006 } | 2008 } |
| 2007 } | 2009 } |
| 2008 { | 2010 |
| 2009 JSONArray breakpoints(&jsobj, "breakpoints"); | 2011 if (debugger() != NULL) { |
| 2010 debugger()->PrintBreakpointsToJSONArray(&breakpoints); | 2012 { |
| 2013 JSONArray breakpoints(&jsobj, "breakpoints"); |
| 2014 debugger()->PrintBreakpointsToJSONArray(&breakpoints); |
| 2015 } |
| 2016 |
| 2017 { |
| 2018 JSONObject jssettings(&jsobj, "_debuggerSettings"); |
| 2019 debugger()->PrintSettingsToJSONObject(&jssettings); |
| 2020 } |
| 2011 } | 2021 } |
| 2012 | 2022 |
| 2013 { | 2023 { |
| 2014 JSONObject jssettings(&jsobj, "_debuggerSettings"); | |
| 2015 debugger()->PrintSettingsToJSONObject(&jssettings); | |
| 2016 } | |
| 2017 | |
| 2018 { | |
| 2019 GrowableObjectArray& handlers = | 2024 GrowableObjectArray& handlers = |
| 2020 GrowableObjectArray::Handle(registered_service_extension_handlers()); | 2025 GrowableObjectArray::Handle(registered_service_extension_handlers()); |
| 2021 if (!handlers.IsNull()) { | 2026 if (!handlers.IsNull()) { |
| 2022 JSONArray extensions(&jsobj, "extensionRPCs"); | 2027 JSONArray extensions(&jsobj, "extensionRPCs"); |
| 2023 String& handler_name = String::Handle(); | 2028 String& handler_name = String::Handle(); |
| 2024 for (intptr_t i = 0; i < handlers.Length(); i += kRegisteredEntrySize) { | 2029 for (intptr_t i = 0; i < handlers.Length(); i += kRegisteredEntrySize) { |
| 2025 handler_name ^= handlers.At(i + kRegisteredNameIndex); | 2030 handler_name ^= handlers.At(i + kRegisteredNameIndex); |
| 2026 extensions.AddValue(handler_name.ToCString()); | 2031 extensions.AddValue(handler_name.ToCString()); |
| 2027 } | 2032 } |
| 2028 } | 2033 } |
| (...skipping 784 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2813 void IsolateSpawnState::DecrementSpawnCount() { | 2818 void IsolateSpawnState::DecrementSpawnCount() { |
| 2814 ASSERT(spawn_count_monitor_ != NULL); | 2819 ASSERT(spawn_count_monitor_ != NULL); |
| 2815 ASSERT(spawn_count_ != NULL); | 2820 ASSERT(spawn_count_ != NULL); |
| 2816 MonitorLocker ml(spawn_count_monitor_); | 2821 MonitorLocker ml(spawn_count_monitor_); |
| 2817 ASSERT(*spawn_count_ > 0); | 2822 ASSERT(*spawn_count_ > 0); |
| 2818 *spawn_count_ = *spawn_count_ - 1; | 2823 *spawn_count_ = *spawn_count_ - 1; |
| 2819 ml.Notify(); | 2824 ml.Notify(); |
| 2820 } | 2825 } |
| 2821 | 2826 |
| 2822 } // namespace dart | 2827 } // namespace dart |
| OLD | NEW |