blob: d867c5bf61fe8e7de3483ae94495180eaa65116c [file] [log] [blame]
// Copyright 2020 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.
syntax = "proto3";
package fidlcat.proto;
import "src/lib/fidl_codec/proto/value.proto";
// A complete fidlcat session. Used to store a session into a file.
message Session {
repeated Process process = 1;
repeated Thread thread = 2;
repeated HandleDescription handle_description = 3;
repeated LinkedKoids linked_koids = 4;
repeated Event event = 5;
}
// Defines a process monitored by a session.
message Process {
uint64 koid = 1;
string name = 2;
repeated LinkedHandles linked_handles = 5;
}
message LinkedHandles {
uint32 handle_0 = 1;
uint32 handle_1 = 2;
}
// Defines a thread monitored by a session.
message Thread {
uint64 koid = 1;
uint64 process_koid = 2;
}
// Defines the semantic associated to a handle.
message HandleDescription {
uint32 handle = 1;
uint64 thread_koid = 2;
sint64 creation_time = 3;
bool startup = 4;
string type = 5;
sint64 fd = 6;
string path = 7;
uint64 koid = 8;
uint32 object_type = 9;
string attributes = 10;
}
message LinkedKoids {
uint64 koid_0 = 1;
uint64 koid_1 = 2;
}
// Defines an event.
message Event {
int64 timestamp = 1;
oneof Kind {
ProcessLaunchedEvent process_launched = 2;
ProcessMonitoredEvent process_monitored = 3;
StopMonitoringEvent stop_monitoring = 4;
InvokedEvent invoked = 5;
OutputEvent output = 6;
ExceptionEvent exception = 7;
}
}
message ProcessLaunchedEvent {
string command = 1;
string error_message = 2;
}
message ProcessMonitoredEvent {
uint64 process_koid = 1;
string error_message = 2;
}
message StopMonitoringEvent {
uint64 process_koid = 1;
}
message InvokedEvent {
uint64 thread_koid = 1;
repeated Location frame = 2;
string syscall = 3;
map<string, fidl_codec.proto.Value> inline_fields = 4;
map<string, fidl_codec.proto.Value> outline_fields = 5;
map<uint32, fidl_codec.proto.Value> inline_id_fields = 6;
map<uint32, fidl_codec.proto.Value> outline_id_fields = 7;
}
message OutputEvent {
uint64 thread_koid = 1;
string syscall = 2;
sint64 returned_value = 3;
uint64 invoked_event_id = 4;
map<string, fidl_codec.proto.Value> inline_fields = 5;
map<string, fidl_codec.proto.Value> outline_fields = 6;
map<uint32, fidl_codec.proto.Value> inline_id_fields = 7;
map<uint32, fidl_codec.proto.Value> outline_id_fields = 8;
}
message ExceptionEvent {
uint64 thread_koid = 1;
repeated Location frame = 2;
}
// Defines a location in a source file (used to define a stack frame).
message Location {
string path = 1;
uint32 line = 2;
uint32 column = 3;
uint64 address = 4;
string symbol = 5;
}