28#if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
30 Debugger* debugger = isolate->debugger();
31 if (debugger ==
nullptr) {
46 return inspectee.ptr();
62 timestamp.AsInt64Value(), level.Value(),
name,
message,
63 dart_zone,
error, stack_trace);
84 return isolate->LookupServiceExtensionHandler(
name);
98 if (!isolate->is_service_isolate()) {
99 isolate->RegisterServiceExtensionHandler(
name, handler);
122 const Dart_Port destination_port_id = port.Id();
166 int64_t port_id = port.Id();
185 ASSERT(isolate_group !=
nullptr);
192#if defined(DART_PRECOMPILED_RUNTIME)
194 ASSERT(isolate_group !=
nullptr);
195 if (
const uint8_t* instructions =
198 if (build_id.data !=
nullptr) {
200 for (intptr_t i = 0; i < build_id.len; i++) {
201 buffer.Printf(
"%2.2x", build_id.data[i]);
211#if defined(DART_ENABLE_HEAP_SNAPSHOT_WRITER)
213 String::CheckedHandle(zone, arguments->NativeArgAt(0));
214 bool successful =
false;
216 FileHeapSnapshotWriter file_writer(thread, filename.
ToCString(),
218 HeapSnapshotWriter writer(thread, &file_writer);
223 "Could not create & write heapsnapshot to disc. Possibly due to "
224 "missing embedder functionality.");
228 "Heap snapshots are only supported in non-product mode.");
void PauseDeveloper(const String &msg)
static DART_NORETURN void ThrowUnsupportedError(const char *msg)
intptr_t ReachabilityBarrier()
static IntegerPtr New(const String &str, Heap::Space space=Heap::kNew)
const uint8_t * snapshot_instructions
IsolateGroupSource * source() const
static std::unique_ptr< Message > New(Args &&... args)
static BuildId GetAppBuildId(const uint8_t *snapshot_instructions)
static bool PostMessage(std::unique_ptr< Message > message, bool before_events=false)
virtual char * GetServiceId(const Object &obj)
static void ControlWebServer(const SendPort &sp, bool enable, const Bool &silenceOutput)
static void RequestServerInfo(const SendPort &sp)
static void WaitForServiceIsolateStartup()
static void SendExtensionEvent(Isolate *isolate, const String &event_kind, const String &event_data)
static void SendInspectEvent(Isolate *isolate, const Object &inspectee)
static void SendLogEvent(Isolate *isolate, int64_t sequence_number, int64_t timestamp, intptr_t level, const String &name, const String &message, const Instance &zone, const Object &error, const Instance &stack_trace)
static SmiPtr New(intptr_t value)
static StringPtr NewFormatted(const char *format,...) PRINTF_ATTRIBUTE(1
static StringPtr New(const char *cstr, Heap::Space space=Heap::kNew)
static const char * ToCString(Thread *thread, StringPtr ptr)
static const uint8_t buffer[]
const uint8_t uint32_t uint32_t GError ** error
static void SendNull(const SendPort &port)
#define DEFINE_NATIVE_ENTRY(name, type_argument_count, argument_count)
#define GET_NATIVE_ARGUMENT(type, name, value)
#define GET_NON_NULL_NATIVE_ARGUMENT(type, name, value)
#define SERVICE_PROTOCOL_MAJOR_VERSION
#define ISOLATE_SERVICE_ID_FORMAT_STRING
#define SERVICE_PROTOCOL_MINOR_VERSION