diff options
Diffstat (limited to '')
-rw-r--r-- | toolkit/crashreporter/CrashAnnotations.yaml | 978 |
1 files changed, 978 insertions, 0 deletions
diff --git a/toolkit/crashreporter/CrashAnnotations.yaml b/toolkit/crashreporter/CrashAnnotations.yaml new file mode 100644 index 0000000000..36e4e4192f --- /dev/null +++ b/toolkit/crashreporter/CrashAnnotations.yaml @@ -0,0 +1,978 @@ +# This lists all the available crash annotations. +# +# Mandatory fields for each entry are: +# - description: A string describing the annotation +# - type: the annotation type, currently `string`, `integer` or `boolean`. +# The latter are stringified to `1` for true and `0` for false. +# +# Additionally a field can have the following optional fields: +# - altname: A string that will be used when writing out the annotation to the +# .extra file instead of the annotation name +# - ping: A boolean that indicates whether the annotation is allowlisted for +# going into the crash ping, if not specified this defaults to false + +AbortMessage: + description: > + Message passed to NS_DebugBreak(). + type: string + +Accessibility: + description: > + Set to "Active" by the accessibility service when it is active. + type: string + +AccessibilityClient: + description: > + Accessibility client ID. + type: string + +AccessibilityInProcClient: + description: > + Hexadecimal mask of in-process accessibility consumers, see + accessible/windows/msaa/Compatibility.h for the mappings. + type: string + +AdapterDeviceID: + description: > + Graphics adapter name. + type: string + +AdapterDriverVendor: + description: > + Graphics adapter driver vendor. + type: string + +AdapterDriverVersion: + description: > + Graphics adapter driver version. + type: string + +AdapterSubsysID: + description: > + Graphics adapter subsystem ID. + type: string + +AdapterVendorID: + description: > + Graphics adapter vendor name. + type: string + +additional_minidumps: + description: > + Comma separated list of additional minidumps for this crash, each element + in the list represent the suffix used in the dump filename. E.g. the + "browser" entry for crash fa909194-737b-4b93-b8da-da110ac785e0 implies the + existence of the fa909194-737b-4b93-b8da-da110ac785e0-browser.dmp file. + type: string + +Addons: + description: > + List of currently enabled add-ons. + type: string + altname: Add-ons + +AppInitDLLs: + description: > + List of DLLs loaded when launching any application on Windows, this + reflects the contents of the AppInit_DLLs registry key. + type: string + +ApplicationBuildID: + description: > + Product application's build ID. + type: string + +AsyncShutdownTimeout: + description: > + This annotation is present if a shutdown blocker was not released in time + and the browser was crashed instead of waiting for shutdown to finish. The + condition that caused the hang is contained in the annotation. + type: string + ping: true + +AvailablePageFile: + description: > + Available commit-space in bytes. + - Under Windows, computed from the PERFORMANCE_INFORMATION structure by substracting + the CommitTotal field from the CommitLimit field. + - Under Linux, computed from /proc/meminfo's CommitLimit - Committed_AS. Note that + the kernel is not guaranteed to enforce that CommittedLimit >= Committed_AS. If + Committed_AS > CommittedLimit, this value is set to 0. + - Not available on other platforms. + type: string + ping: true + +AvailablePhysicalMemory: + description: > + Amount of free physical memory in bytes. + - Under Windows, populated with the contents of the MEMORYSTATUSEX's structure + ullAvailPhys field. + - Under macOS, populated with vm_statistics64_data_t::free_count. + - Under Linux, populated with /proc/meminfo's MemFree. + - Not available on other platforms. + type: string + ping: true + +AvailableSwapMemory: + description: > + Amount of free swap space in bytes. + - Under macOS, populated with the contents of + sysctl "vm.swapusage" :: xsu_avail. + - Under Linux, populated with /proc/meminfo's SwapFree. + - Not available on other platforms. + type: string + ping: true + +AvailableVirtualMemory: + description: > + Amount of free virtual memory in bytes + - Under Windows, populated with the contents of the MEMORYSTATUSEX's structure ullAvailVirtual field. + - Under Linux, populated with /proc/meminfo's MemAvailable. + - Not available on other platforms. + - For macOS, see AvailableSwapMemory, AvailablePhysicalMemory and PurgeablePhysicalMemory. + type: string + ping: true + +BackgroundTaskMode: + description: > + True if the app was invoked in background task mode via `--backgroundtask ...`, false otherwise. + type: boolean + +BackgroundTaskName: + description: > + If the app was invoked in background task mode via `--backgroundtask <task name>`, the string "task name". + type: string + ping: true + +BlockedDllList: + description: > + Comma-separated list of blocked DLLS, Windows-only + type: string + ping: true + +BlocklistInitFailed: + description: > + Set to 1 if the DLL blocklist could not be initialized. + type: boolean + ping: true + +Breadcrumbs: + description: > + Trail of events that occurred before a report. this will consist of multiple breadcrumbs with + timestamp, message, category, level, type and data in JSON format. + type: string + +BuildID: + description: > + Application build ID, the format is YYYYMMDDHHMMSS. + type: string + ping: true + +ClassRegistrationInfoChild: + description: > + Microsoft COM class registration annotation for the child process. + type: string + +ClassRegistrationInfoParent: + description: > + Microsoft COM class registration annotation for the parent process. + type: string + +ContentSandboxCapabilities: + description: > + List of capabilities of the content process sandbox. + type: string + +ContentSandboxEnabled: + description: > + Set to 1 when content process sandboxing is enabled. + type: boolean + +ContentSandboxCapable: + description: > + Set to 1 if the client is capable of content sandboxing. + type: boolean + +ContentSandboxLevel: + description: > + Content sandbox level. + type: integer + +ContentSandboxWin32kState: + description: > + Content sandbox Win32k state + type: string + +GpuSandboxLevel: + description: > + GPU sandbox level. + type: integer + +CPUMicrocodeVersion: + description: > + Version of the CPU microcode. + type: string + +CrashAddressLikelyWrong: + description: > + Set to 1 if signal handling is broken, in which case the crash address is + likely to be wrong. + type: boolean + +CrashTime: + description: > + Crash time in seconds since the Epoch. + type: string + ping: true + +CycleCollector: + description: > + Reason why the cycle collector crashed. + type: string + +DesktopEnvironment: + description: > + Desktop environment used on Linux, e.g. GNOME, KDE, XFCE, etc. + type: string + +DeviceResetReason: + description: > + Reason why a DirectX device has been reset, Windows only. + type: string + +DistributionID: + description: > + Product application's distribution ID. + type: string + +DOMFissionEnabled: + description: > + Set to 1 when DOM fission is enabled, and subframes are potentially loaded + in a separate process. + type: boolean + ping: true + +DOMIPCEnabled: + description: > + Set to 1 when a tab is running in a content process + type: boolean + +DumperError: + description: > + Error message of the minidump writer, in case there was an error during dumping. + type: string + +EMCheckCompatibility: + description: > + Set to 1 if add-on compatibility checking is enabled. + type: boolean + +EventLoopNestingLevel: + description: > + Present only if higher than 0, indicates that we're running in a nested + event loop and indicates the nesting level. + type: integer + ping: true + +ExperimentalFeatures: + description: > + Comma-separated list of enabled experimental features from about:preferences#experimental. + type: string + ping: true + +FontName: + description: > + Set before attempting to load a font to help diagnose crashes during loading. + type: string + ping: true + +GMPLibraryPath: + description: > + Holds the path to the GMP plugin library. + type: string + +GMPPlugin: + description: > + Set to 1 if the GMP plugin is enabled. + type: boolean + +GPUProcessLaunchCount: + description: > + Number of times the GPU process was launched. + type: integer + ping: true + +GPUProcessStatus: + description: > + Status of the GPU process, can be set to "Running" or "Destroyed" + type: string + +GraphicsCompileShader: + description: > + Name of the shader we are in the process of compiling, if applicable. See + file names in gfx/wr/webrender/res/* for the possible values. + type: string + +GraphicsCriticalError: + description: > + Information of a critical error that occurred within the graphics code. + type: string + +GraphicsDrawShader: + description: > + Name of the shader that is currently bound for a draw call, if applicable. + See file names in gfx/wr/webrender/res/* for the possible values. + type: string + +GraphicsNumActiveRenderers: + description: > + Number of webrender renderer instances that are not in a paused state. + type: integer + +GraphicsNumRenderers: + description: > + Total number of webrender renderer instances. + type: integer + +GraphicsStartupTest: + description: > + Set to 1 by the graphics driver crash guard when it's activated. + type: boolean + +HeadlessMode: + description: > + True if the app was invoked in headless mode via `--headless ...` or `--backgroundtask ...`, false otherwise. + type: boolean + ping: true + +PHCKind: + description: > + The allocation kind, if the crash involved a bad access of a special PHC + allocation. + type: string + +PHCBaseAddress: + description: > + The allocation's base address, if the crash involved a bad access of a + special PHC allocation. Encoded as a decimal address. + type: string + +PHCUsableSize: + description: > + The allocation's usable size, if the crash involved a bad access of a + special PHC allocation. + # A 32-bit integer is enough because the maximum usable size of a special PHC + # allocation is far less than 2 GiB. + type: integer + +PHCAllocStack: + description: > + The allocation's allocation stack trace, if the crash involved a bad access + of a special PHC allocation. Encoded as a comma-separated list of decimal + addresses. + type: string + +PHCFreeStack: + description: > + The allocation's free stack trace, if the crash involved a bad access + of a special PHC allocation. Encoded as a comma-separated list of decimal + addresses. + type: string + +HasDeviceTouchScreen: + description: > + Set to 1 if the device had a touch-screen, this only applies to Firefox + desktop as on mobile devices we assume a touch-screen is always present. + type: boolean + +IAccessibleConfig: + description: > + Set when something is seriously wrong with the IAccessible configuration in + the computer's registry. The value is always set to "NoSystemTypeLibOrPS" + type: string + +InstallTime: + description: > + The time when Firefox was installed expressed as seconds since the Epoch + type: integer + +ipc_channel_error: + description: > + Set before a content process crashes because of an IPC channel error, holds + a description of the error. + type: string + ping: true + +IpcCreateEndpointsNsresult: + description: > + errno value retrieved after failing to create an IPC transport object. + type: integer + +IpcCreatePipeCloExecErrno: + description: > + errno value retrieved after failing to set the O_CLOEXEC flag on a pipe + used for IPC. + type: integer + +IpcCreatePipeFcntlErrno: + description: > + errno value retrieved after a call to fcntl() on a pipe used for IPC failed. + type: integer + +IpcCreatePipeSocketPairErrno: + description: > + errno value retrieved after a socketpair() call failed while creating an IPC + transport object. + type: integer + +IpcCreateTransportDupErrno: + description: > + errno value retrieved after a dup() call failed while creating an IPC + transport object. + type: integer + +IPCFatalErrorMsg: + description: > + Describes a fatal error that occurred during IPC operation. + type: string + +IPCFatalErrorProtocol: + description: > + Name of the protocol used by IPC when a fatal error occurred. + type: string + +IPCMessageName: + description: > + Name of the IPC message that caused a crash because it was too large. + type: string + +IPCMessageSize: + description: > + Size of the IPC message that caused a crash because it was too large. + type: integer + +IPCReadErrorReason: + description: > + Reason why reading an object via IPC failed. + type: string + +IPCShutdownState: + description: > + IPC shutdown state, can be set to either "RecvShutdown" or + "SendFinishShutdown" by a content process while it's shutting down. + type: string + +IPCSystemError: + description: > + Description of the last system error that occurred during IPC operation. + type: string + +IPCTransportFailureReason: + description: > + Reason why creating an IPC channel failed. + type: string + +IsGarbageCollecting: + description: > + If true then the JavaScript garbage collector was running when the crash + occurred. + type: boolean + ping: true + +IsWayland: + description: > + If true then the Wayland windowing system was in use. + type: boolean + +IsWebRenderResourcePathOverridden: + description: > + If true then the WebRender resources (i.e. shaders) are loaded from a user specified path. + type: boolean + +JavaException: + description: > + JSON structured Java stack trace, only present on Firefox for Android if we encounter an + uncaught Java exception. + type: string + +JavaStackTrace: + description: > + Java stack trace, only present on Firefox for Android if we encounter an + uncaught Java exception. + type: string + +JSActorMessage: + description: > + If an actor is currently treating a message, this is the name of the message. + Otherwise, empty. + type: string + +JSActorName: + description: > + If an actor is currently treating a message, this is the name of the actor. + Otherwise, empty. + type: string + +JSLargeAllocationFailure: + description: > + A large allocation couldn't be satisfied, check the JSOutOfMemory + description for the possible values of this annotation. + type: string + +JSModuleLoadError: + description: > + The error raised when attempting to import a critical JS module from C++ + type: string + +JSOutOfMemory: + description: > + A small allocation couldn't be satisfied, the annotation may contain the + "Reporting", "Reported" or "Recovered" value. The first one means that + we crashed while responding to the OOM condition (possibly while running a + memory-pressure observers), the second that we crashed after having tried to + free some memory, and the last that the GC had managed to free enough memory + to satisfy the allocation. + type: string + + +LastInteractionDuration: + description: > + How long the user had been inactive in seconds if the user was inactive + at crash. The value is not set if the user state was active. + type: integer + ping: true + +LastStartupWasCrash: + description: > + True if the last startup was detected to have been a crash. + type: boolean + +MacMemoryPressure: + description: > + The current memory pressure state as provided by the macOS memory pressure + dispatch source. The annotation value is one of "Normal" for no memory + pressure, "Unset" indicating a memory pressure event has not been received, + "Warning" or "Critical" mapping to the system memory pressure levels, + or "Unexpected" for an unexpected level. This is a Mac-specific annotation. + type: string + +MacMemoryPressureNormalTime: + description: > + The time when the memory pressure state last transitioned to 'Normal' + expressed as seconds since the Epoch. + type: string + +MacMemoryPressureWarningTime: + description: > + The time when the memory pressure state last transitioned to 'Warning' + expressed as seconds since the Epoch. + type: string + +MacMemoryPressureCriticalTime: + description: > + The time when the memory pressure state last transitioned to 'Critical' + expressed as seconds since the Epoch. + type: string + +MacMemoryPressureSysctl: + description: > + The value of the memory pressure sysctl + 'kern.memorystatus_vm_pressure_level'. Indicates which memory + pressure level the system is in at the time of the crash. The expected + values are one of 4 (Critical), 2 (Warning), or 1 (Normal). + type: integer + +MacAvailableMemorySysctl: + description: > + The value of the available memory sysctl 'kern.memorystatus_level'. + Expected to be a percentage integer value. + type: integer + +LinuxUnderMemoryPressure: + description: > + Set to true if the memory pressure watcher was under memory pressure when + the crash occurred. + type: boolean + +LauncherProcessState: + description: > + Launcher process enabled state. The integer value of this annotation must + match with one of the values in the + mozilla::LauncherRegistryInfo::EnableState enum + type: integer + +LowPhysicalMemoryEvents: + description: > + Number of times the available memory tracker has detected that free + physical memory is running low. This is a Windows-specific annotation. + type: integer + ping: true + +MainThreadRunnableName: + description: > + Name of the currently executing nsIRunnable on the main thread. + type: string + ping: true + +MozCrashReason: + description: > + Plaintext description of why Firefox crashed, this is usually set by + assertions and the like. + type: string + ping: true + +Notes: + description: > + Miscellaneous notes that can be appended to a crash. + type: string + +OOMAllocationSize: + description: > + Size of the allocation that caused an out-of-memory condition. + type: string + ping: true + +PluginFilename: + description: > + Plugin filename, only the process holding the plugin has this annotation. + type: string + +PluginName: + description: > + Display name of a plugin, only the process holding the plugin has this + annotation. + type: string + +PluginVersion: + description: > + Version of a plugin, only the process holding the plugin has this + annotation. + type: string + +ProcessType: + description: > + Type of the process that crashed, the possible values are defined in + GeckoProcessTypes.h. + type: string + +ProductName: + description: > + Application name (e.g. Firefox). + type: string + ping: true + +ProductID: + description: > + Application UUID (e.g. ec8030f7-c20a-464f-9b0e-13a3a9e97384). + type: string + ping: true + +ProfilerChildShutdownPhase: + description: > + When a child process shuts down, this describes if the profiler is running, + and the point the profiler shutdown sequence has reached. + type: string + ping: true + +PurgeablePhysicalMemory: + description: > + macOS only. Amount of physical memory currently allocated but which may + be deallocated by the system in case of memory pressure. Populated from + vm_statistics64_data_t::purgeable_count * vm_page_size. + type: string + ping: true + +QuotaManagerShutdownTimeout: + description: > + This annotation is present if the quota manager shutdown (resp. the shutdown + of the quota manager clients) was not finished in time and the browser was + crashed instead of waiting for the shutdown to finish. The status of objects + which were blocking completion of the shutdown when reaching the timeout + is contained in the annotation. + + In the case of IndexedDB, objects are divided into three groups: + FactoryOperations, LiveDatabases and DatabaseMaintenances. + + In the case of LocalStorage, objects are divided into three groups: + PrepareDatastoreOperations, Datastores and LiveDatabases. + + In the case of Cache API, objects are in one group only: + Managers. + + Each group is reported separately and contains the number of objects in the + group and the status of individual objects in the group (duplicate entries + are removed): + "GroupName: N (objectStatus1, objectStatus2, ...)" where N is the number of + objects in the group. + + The status of individual objects is constructed by taking selected object + properties. Properties which contain origin strings are anonymized. + + In addition, intermediate steps are recorded for change events after shutdown + started. These include the time difference and the type of object. + type: string + ping: true + +RDDProcessStatus: + description: > + Status of the RDD process, can be set to "Running" or "Destroyed" + type: string + +ReleaseChannel: + description: > + Application release channel (e.g. default, beta, ...) + type: string + ping: true + +RemoteType: + description: > + Type of the content process, can be set to "web", "file" or "extension". + type: string + ping: true + +SafeMode: + description: > + Set to 1 if the browser was started in safe mode. + type: boolean + +SecondsSinceLastCrash: + description: > + Time in seconds since the last crash occurred. + type: string + ping: true + +ServerURL: + description: > + URL used to post the crash report. + type: string + +ShutdownProgress: + description: > + Shutdown step at which the browser crashed, can be set to "quit-application", + "profile-change-teardown", "profile-before-change", "xpcom-will-shutdown" or + "xpcom-shutdown". + type: string + ping: true + +ShutdownReason: + description: > + One out of "Unknown", "AppClose", "AppRestart", "OSForceClose", + "OSSessionEnd", "OSShutdown" or "WinUnexpectedMozQuit". + type: string + ping: true + +StartupCacheValid: + description: > + True if the startup cache was deemed valid and usable. Will be false if the + last session used a different browser version or had a startup cache. + type: boolean + +StartupCrash: + description: > + If set to 1 then this crash occurred during startup. + type: boolean + ping: true + +StartupTime: + description: > + The time when Firefox was launched expressed in seconds since the Epoch. + type: integer + +StorageConnectionNotClosed: + description: > + This annotation is added when a mozStorage connection has not been properly + closed during shutdown. The annotation holds the filename of the database + associated with the connection. + type: string + +SubmittedFrom: + description: > + This annotation can hold one of the following five values depending on how + this crash was submitted by the user: + * Auto: the user had opted-in to auto-submission + * Infobar: the user clicked on the infobar to submit the crash + * AboutCrashes: the user sent the crash from the about:crashes page + * CrashedTab: the user sent the crash from a crashed tab page + * Client: the user sent the crash using the crash reporter client + type: string + +SystemMemoryUsePercentage: + description: > + Windows-only, percentage of physical memory in use. This annotation is + populated with the contents of the MEMORYSTATUSEX's structure dwMemoryLoad + field. + type: integer + ping: true + +TelemetryClientId: + description: > + Telemetry client ID. + type: string + +TelemetryEnvironment: + description: > + The telemetry environment in JSON format. + type: string + +TelemetryServerURL: + description: > + Telemetry server URL. Used to send main process crash pings directly from + the crashreporter client. + type: string + +TelemetrySessionId: + description: > + Telemetry session ID. + type: string + +TestKey: + description: > + Annotation used in tests. + type: string + +TestUnicode: + description: > + Annotation used in tests. + type: string + +TextureUsage: + description: > + Amount of memory in bytes consumed by textures. + type: string + ping: true + +Throttleable: + description: > + Whether Socorro can selectively discard this crash report or not. If set + to "0" the crash report will always be processed by Socorro. Do not set + this annotation within Gecko code, it's only supposed to be used by the + crash reporting machinery. + type: boolean + +TotalPageFile: + description: > + Maximum amount of memory that can be committed without extending the swap/page file. + - Under Windows, populated with the contents of the PERFORMANCE_INFORMATION's + structure CommitLimit field. + - Under Linux, populated with /proc/meminfo MemTotal + SwapTotal. The swap file + typically cannot be extended, so that's a hard limit. + - Not available on other systems. + type: string + ping: true + +TotalPhysicalMemory: + description: > + Amount of physical memory in bytes. + - Under Windows, populated with the contents of the MEMORYSTATUSEX's structure + ullTotalPhys field. + - Under macOS, populated with sysctl "hw.memsize". + - Under Linux, populated with /proc/meminfo's "MemTotal". + - Not available on other systems. + type: string + ping: true + +TotalVirtualMemory: + description: > + Size of the virtual address space. + - Under Windows, populated with the contents of the MEMORYSTATUSEX's structure + ullTotalVirtual field. + - Not available on other platforms. + type: string + ping: true + +UnknownNetAddrSocketFamily: + description: > + An unknown network address family was requested to Necko. The value is the + requested family number. + type: integer + +UptimeTS: + description: > + Uptime in seconds. This annotation uses a string instead of an integer + because it has a fractional component. + type: string + ping: true + +URL: + description: > + URL being loaded. + type: string + +URLSegments: + description: > + The offsets of the nsStandardURL segments that fail a sanity check + type: string + +User32BeforeBlocklist: + description: > + Set to 1 if user32.dll was loaded before we could install the DLL blocklist. + type: boolean + ping: true + +useragent_locale: + description: > + User-agent locale. + type: string + +UtilityProcessStatus: + description: > + Status of the Utility process, can be set to "Running" or "Destroyed" + type: string + +UtilityActorsName: + description: > + Comma-separated list of IPC actors name running on this Utility process instance + type: string + ping: true + +Vendor: + description: > + Application vendor (e.g. Mozilla). + type: string + +Version: + description: > + Product version. + type: string + +VRProcessStatus: + description: > + Status of the VR process, can be set to "Running" or "Destroyed" + type: string + +WasmLibrarySandboxMallocFailed: + description: > + Set to 1 if a rlbox wasm library sandbox ran out of memory, causing a + malloc inside the sandbox to fail. + type: boolean + +WindowsPackageFamilyName: + description: > + If running in a Windows package context, the package family name, per + https://docs.microsoft.com/en-us/windows/win32/api/appmodel/nf-appmodel-getcurrentpackagefamilyname. + + The package family name is only included when it is likely to have been produced by Mozilla: it + starts "Mozilla." or "MozillaCorporation.". + type: string + ping: true + +WindowsErrorReporting: + description: > + Set to 1 if this crash was intercepted via the Windows Error Reporting + runtime exception module. + type: boolean + ping: true + +Winsock_LSP: + description: > + Information on winsock LSPs injected in our networking stack. + type: string + +XPCOMSpinEventLoopStack: + description: > + If we crash while some code is spinning manually the event loop on the + main thread, we will see the stack of nested annotations here. + If the crashing process was killed (e.g. due to an IPC error), this + annotation may refer to the parent process that killed it, look out for + the prefix ("default" means parent) and see bug 1741131 for details. + type: string |