blob: e6e0c86c5ce7ad32cf5555f7154dddab823ca816 [file] [log] [blame]
// Copyright 2021 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.sys2;
using fuchsia.component;
using fuchsia.component.types;
using zx;
/// Information stored when a thread crashes.
type ComponentCrashInfo = table {
1: url string:fuchsia.component.types.MAX_URL_LENGTH;
2: moniker string:fuchsia.component.MAX_MONIKER_LENGTH;
};
/// When a thread from a component using the ELF runner crashes, the thread
/// koid along with other information is stored. This protocol can be used to
/// retrieve that stored information.
@discoverable
closed protocol CrashIntrospect {
/// Given a thread koid, returns the information that was stored when the
/// ELF runner observed a crash from that thread.
///
/// The information for a crash is deleted when it is accessed or when 10
/// minutes have passed, whichever comes first.
///
/// If there is no information available on the given thread koid,
/// `zx::Status::NOT_FOUND` is returned.
strict FindComponentByThreadKoid(resource struct {
thread_koid zx.Koid;
}) -> (struct {
info ComponentCrashInfo;
}) error fuchsia.component.Error;
};