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 |