1// Copyright 2018 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5library fuchsia.crash;
6
7using fuchsia.mem;
8
9// Analyzes crashed processes.
10[Discoverable, Layout = "Simple"]
11interface Analyzer {
12    // Requests that the crash analyzer analyzes the given |thread| in |process|,
13    // which has crashed.
14    // This method is responsible for resuming or stopping the thread once the
15    // analyze is done.
16    //
17    // The behavior of this method varies depending on the implementation, but
18    // a typical implementation might print a crash dump to the system log or
19    // upload a crash report to a server.
20    1: Analyze(handle<process> process, handle<thread> thread) -> ();
21
22    // Requests that the crash analyzer process the crash log.
23    //
24    // The behavior of this method varies depending on the implementation, but
25    // a typical implementation might print the crash log to the system log or
26    // upload a crash report to a server with the log as attachment.
27    2: Process(fuchsia.mem.Buffer crashlog) -> ();
28};
29