fuchsia.feedback

PROTOCOLS

CrashReporter

Defined in fuchsia.feedback/crash_reporter.fidl

Provides the ability to file crash reports.

File

Files a crash report.

This could mean generating a crash report in a local crash report database or uploading the crash report to a remote crash server depending on the FIDL server's configuration.

Request

NameType
report CrashReport

Response

NameType
result CrashReporter_File_Result

DataProvider

Defined in fuchsia.feedback/data_provider.fidl

Provides data useful to attach in feedback reports (crash or user feedback).

GetData

Returns all the feedback data except the screenshot, which is provided separately.

Request

NameType

Response

NameType
result DataProvider_GetData_Result

GetScreenshot

Returns an image of the current view encoded in the provided encoding.

screenshot may be null if the encoding is not supported, the device does not have a display, or there is not enough memory to allocate the screenshot image.

The screenshot is provided separately from the rest of the data as callers might want to block on it before changing the view.

Request

NameType
encoding ImageEncoding

Response

NameType
screenshot Screenshot?

STRUCTS

Annotation

Defined in fuchsia.feedback/annotation.fidl

An annotation and its plain ASCII string key. Annotations are short strings, e.g., the board name or the build version.

NameTypeDescriptionDefault
key string[128] No default
value string[1024] No default

Attachment

Defined in fuchsia.feedback/attachment.fidl

An attachment and its plain ASCII string key. Attachments are larger objects, e.g., log files. They may be binary or text data.

NameTypeDescriptionDefault
key string[128] No default
value fuchsia.mem/Buffer No default

CrashReporter_File_Response

generated

NameTypeDescriptionDefault

DataProvider_GetData_Response

generated

NameTypeDescriptionDefault
data Data No default

Screenshot

Defined in fuchsia.feedback/data_provider.fidl

An encoded image of the screen.

NameTypeDescriptionDefault
image fuchsia.mem/Buffer No default
dimensions_in_px fuchsia.math/Size No default

ENUMS

ImageEncoding

Type: uint32

Defined in fuchsia.feedback/data_provider.fidl

The encoding used for the image.

Today, only PNG is supported, but in the future the screenshot could be returned in other encodings if need arises.

NameValueDescription
PNG 0

TABLES

CrashReport

Defined in fuchsia.feedback/crash_reporter.fidl

Represents a crash report.

OrdinalNameTypeDescription
1 program_name string[1024]

The name of the program that crashed, e.g., the process or component's name.

6 program_uptime zx/duration

How long the program was running before it crashed.

2 specific_report SpecificCrashReport

The specific report that depends on the type of crashes.

3 annotations vector<Annotation>[32]

A vector of key-value string pairs representing arbitrary data that should be attached to a crash report. Keys should be unique.

4 attachments vector<Attachment>[16]

A vector of key-value string-to-VMO pairs representing arbitrary data that should be attached to a crash report. Keys should be unique.

5 event_id string[128]

A text ID that the crash server can use to group multiple crash reports related to the same event.

Unlike the crash signature, crash reports sharing the same ID correspond to different crashes, but can be considered as belonging to the same event, e.g., a crash in a low-level server causing a crash in a high-level UI widget.

GenericCrashReport

Defined in fuchsia.feedback/crash_reporter.fidl

Represents a generic crash report.

OrdinalNameTypeDescription
1 crash_signature string[128]

A text signature that the crash server can use to track the same crash over time, e.g., "kernel-panic" or "oom".

Unlike the event ID, crash reports sharing the same signature correspond to the same crash, but happening over multiple events, e.g., a null pointer exception in a server whenever asked the same request.

NativeCrashReport

Defined in fuchsia.feedback/crash_reporter.fidl

Represents a crash report for a native exception out of which the client has built a minidump.

OrdinalNameTypeDescription
1 minidump fuchsia.mem/Buffer

The core dump in the Minidump format.

RuntimeCrashReport

Defined in fuchsia.feedback/crash_reporter.fidl

Represents a crash report for a runtime exception, applicable to most languages.

OrdinalNameTypeDescription
1 exception_type string[128]

The exception type, e.g., "FileSystemException".

2 exception_message string[1024]

The exception message, e.g., "cannot open file".

3 exception_stack_trace fuchsia.mem/Buffer

The text representation of the exception stack trace.

Data

Defined in fuchsia.feedback/data_provider.fidl

Data to attach to feedback reports.

Clients typically upload the data straight to servers without expecting some particular fields. So the data comes in the form of arbitrary key-value pairs that clients can directly forward to the servers.

OrdinalNameTypeDescription
1 annotations vector<Annotation>[32]

A vector of key-value string pairs. Keys are guaranteed to be unique.

3 attachment_bundle Attachment

A bundle of Attachments objects stored as an Attachment itself, e.g., it could be a ZIP archive bundling a vector of Attachment objects.

2

UNIONS

CrashReporter_File_Result

generated

NameTypeDescription
response CrashReporter_File_Response
err zx/status

DataProvider_GetData_Result

generated

NameTypeDescription
response DataProvider_GetData_Response
err zx/status

XUNIONS

SpecificCrashReport

Defined in fuchsia.feedback/crash_reporter.fidl

Represents a specific crash report.

Add a new member when the server needs to special case how it handles certain annotations and attachments for a given type of crashes, e.g., a RuntimeCrashReport for Javascript.

NameTypeDescription
generic GenericCrashReport

Intended for arbitrary crashes, e.g., OOM, out-of-disk.

native NativeCrashReport

Intended for a native exception.

dart RuntimeCrashReport

Intended for a Dart exception.

CONSTANTS

NameValueTypeDescription
MAX_PROGRAM_NAME_LENGTH 1024 uint32
MAX_NUM_ANNOTATIONS 32 uint32
MAX_NUM_ATTACHMENTS 16 uint32
MAX_EVENT_ID_LENGTH 128 uint32
MAX_CRASH_SIGNATURE_LENGTH 128 uint32
MAX_EXCEPTION_TYPE_LENGTH 128 uint32
MAX_EXCEPTION_MESSAGE_LENGTH 1024 uint32