5#include <lib/async-loop/cpp/loop.h>
6#include <lib/async-loop/default.h>
7#include <lib/inspect/component/cpp/component.h>
8#include <lib/trace-provider/provider.h>
9#include <lib/trace/event.h>
17#include "platform/utils.h"
22#include "third_party/dart/runtime/include/dart_api.h"
24#if !defined(DART_PRODUCT)
27 const char* dso_name) {
28 std::string* symbols =
new std::string();
30 Dart_AddSymbols(dso_name, symbols->data(), symbols->size());
32 FML_LOG(ERROR) <<
"Failed to load " << symbols_path;
39 async::Loop loop(&kAsyncLoopConfigAttachToCurrentThread);
48 auto context = sys::ComponentContext::Create();
53 dart::SetDartVmNode(std::make_unique<inspect::Node>(
56 std::unique_ptr<trace::TraceProviderWithFdio> provider;
60 trace::TraceProviderWithFdio::CreateSynchronously(
61 loop.dispatcher(),
"dart_runner", &provider, &already_started);
64#if !defined(DART_PRODUCT)
65#if defined(AOT_RUNTIME)
75 context->outgoing()->ServeFromStartupInfo();
static void Dump(inspect::Node &node)
static void Initialize(sys::ComponentContext *context)
static inspect::Node CreateRootChild(const std::string &name)
void AsyncWaitForInterestChanged()
void SetTags(const std::initializer_list< std::string > &tags)
static LogState & Default()
#define FML_LOG(severity)
#define FML_CHECK(condition)
bool ReadFileToString(const std::string &path, std::string *result)
int main(int argc, const char **argv)
static void RegisterProfilerSymbols(const char *symbols_path, const char *dso_name)