Source code

Revision control

Copy as Markdown

Other Tools

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
#ifndef SANDBOX_PROFILER_CHILD_H
#define SANDBOX_PROFILER_CHILD_H
#include "SandboxProfiler.h"
#if defined(HAVE_REPORT_UPROFILER_PARENT)
#error Cannot include SandboxProfilerChild.h when already included SandboxProfilerParent.h
#endif
#define HAVE_REPORT_UPROFILER_CHILD
namespace mozilla {
/* static */
bool SandboxProfiler::Init() {
MOZ_ASSERT(!sInSignalContext,
"SandboxProfiler::Init called in SIGSYS handler");
if (!uprofiler_initted) {
UPROFILER_GET(g);
if (g && !g(&uprofiler)) {
return false;
}
}
MOZ_ASSERT(uprofiler.simple_event_marker_with_stack !=
simple_event_marker_with_stack_noop,
"Marker sym OK");
MOZ_ASSERT(uprofiler.native_backtrace != native_backtrace_noop,
"Backtrace sym OK");
if (uprofiler.native_backtrace &&
uprofiler.native_backtrace != native_backtrace_noop) {
uprofiler_initted = true;
return true;
}
return false;
}
} // namespace mozilla
#endif // SANDBOX_PROFILER_CHILD_H