1 # This lists all the available crash annotations.
3 # Mandatory fields for each entry are:
4 # - description: A string describing the annotation
5 # - type: the annotation type, currently `string`, `boolean`, `u32`, `u64` or
6 # `usize`. Note that `boolean` values are stringified to `1` for
7 # true and `0` for false.
9 # Additionally a field can have the following optional fields:
10 # - altname: A string that will be used when writing out the annotation to the
11 # .extra file instead of the annotation name
12 # - ping: A boolean that indicates whether the annotation is allowed for
13 # inclusion in the crash ping, if not specified this defaults to false
14 # - skip_if: A string that will cause the annotation not to be included in the
15 # crash report if the contents match it.
19 Message passed to NS_DebugBreak().
24 Set to "Active" by the accessibility service when it is active.
29 Accessibility client ID.
32 AccessibilityInProcClient:
34 Hexadecimal mask of in-process accessibility consumers, see
35 accessible/windows/msaa/Compatibility.h for the mappings.
40 Graphics adapter name.
45 Graphics adapter driver vendor.
50 Graphics adapter driver version.
55 Graphics adapter subsystem ID.
60 Graphics adapter vendor name.
65 Comma separated list of additional minidumps for this crash, each element
66 in the list represent the suffix used in the dump filename. E.g. the
67 "browser" entry for crash fa909194-737b-4b93-b8da-da110ac785e0 implies the
68 existence of the fa909194-737b-4b93-b8da-da110ac785e0-browser.dmp file.
73 List of currently enabled add-ons.
79 The name of the underlying board used by the Android device. e.g. "k68v1_64"
84 The consumer-visible brand associated with this Android device. e.g. "vivo"
89 The Android primary CPU ABI being used. e.g. "arm64-v8a"
94 The Android secondary CPU ABI being used. e.g. "armeabi-v7a"
99 Android device name. e.g. "1907"
104 End-user visible display name of the build id for the Android build.
105 e.g. "SP1A.210812.003 release-keys"
110 A string that uniquely identifies the Android build. e.g.
111 "vivo/1907/1907:12/SP1A.210812.003/compiler03091510:user/release-keys"
116 The name of the Android hardware from "/proc". e.g. "mt6768"
119 Android_Manufacturer:
121 Android device manufacturer. e.g. "vivo"
126 End-user visible Android device model name. e.g. "vivo 1907"
131 The package name of an Android application that uniquely identifies the
132 application on the device, Google Play Store, and third-party Android
133 stores. e.g. "com.example.referencebrowser"
138 The developer preview revision of a prerelease SDK plus The current
139 development codename, or the string "REL" if this is a release build.
145 List of DLLs loaded when launching any application on Windows, this
146 reflects the contents of the AppInit_DLLs registry key.
151 Product application's build ID.
154 AsyncShutdownTimeout:
156 This annotation is present if a shutdown blocker was not released in time
157 and the browser was crashed instead of waiting for shutdown to finish. The
158 condition that caused the hang is contained in the annotation.
164 Available commit-space in bytes.
165 - Under Windows, computed from the PERFORMANCE_INFORMATION structure by substracting
166 the CommitTotal field from the CommitLimit field.
167 - Under Linux, computed from /proc/meminfo's CommitLimit - Committed_AS. Note that
168 the kernel is not guaranteed to enforce that CommittedLimit >= Committed_AS. If
169 Committed_AS > CommittedLimit, this value is set to 0.
170 - Not available on other platforms.
174 AvailablePhysicalMemory:
176 Amount of free physical memory in bytes.
177 - Under Windows, populated with the contents of the MEMORYSTATUSEX's structure
179 - Under macOS, populated with vm_statistics64_data_t::free_count.
180 - Under Linux, populated with /proc/meminfo's MemFree.
181 - Not available on other platforms.
187 Amount of free swap space in bytes.
188 - Under macOS, populated with the contents of
189 sysctl "vm.swapusage" :: xsu_avail.
190 - Under Linux, populated with /proc/meminfo's SwapFree.
191 - Not available on other platforms.
195 AvailableVirtualMemory:
197 Amount of free virtual memory in bytes
198 - Under Windows, populated with the contents of the MEMORYSTATUSEX's structure ullAvailVirtual field.
199 - Under Linux, populated with /proc/meminfo's MemAvailable.
200 - Not available on other platforms.
201 - For macOS, see AvailableSwapMemory, AvailablePhysicalMemory and PurgeablePhysicalMemory.
207 True if the app was invoked in background task mode via `--backgroundtask ...`, false otherwise.
212 If the app was invoked in background task mode via `--backgroundtask <task name>`, the string "task name".
218 Comma-separated list of blocked DLLS, Windows-only
224 Set to 1 if the DLL blocklist could not be initialized.
231 Trail of events that occurred before a report. this will consist of multiple breadcrumbs with
232 timestamp, message, category, level, type and data in JSON format.
237 Application build ID, the format is YYYYMMDDHHMMSS.
241 ContentSandboxCapabilities:
243 List of capabilities of the content process sandbox.
246 ContentSandboxEnabled:
248 Set to 1 when content process sandboxing is enabled.
251 ContentSandboxCapable:
253 Set to 1 if the client is capable of content sandboxing.
258 Content sandbox level.
261 ContentSandboxWin32kState:
263 Content sandbox Win32k state
273 Version of the CPU microcode.
278 Crash time in seconds since the Epoch.
284 Reason why the cycle collector crashed.
289 Desktop environment used on Linux, e.g. GNOME, KDE, XFCE, etc.
294 Reason why a DirectX device has been reset, Windows only.
299 Set to 1 when DOM fission is enabled, and subframes are potentially loaded
300 in a separate process.
306 Set to 1 when a tab is running in a content process
311 Error message of the minidump writer, in case there was an error during dumping.
314 EMCheckCompatibility:
316 Set to true if add-on compatibility checking is enabled. Technically this
317 annotation should be a boolean, but historically it's been set by JavaScript
318 code as a string, so keep it as such for the time being.
321 EventLoopNestingLevel:
323 Present only if higher than 0, indicates that we're running in a nested
324 event loop and indicates the nesting level.
329 ExperimentalFeatures:
331 Comma-separated list of enabled experimental features from about:preferences#experimental.
337 Set before attempting to load a font to help diagnose crashes during loading.
343 Holds the path to the GMP plugin library.
348 Set to 1 if the GMP plugin is enabled.
351 GPUProcessLaunchCount:
353 Number of times the GPU process was launched.
359 Status of the GPU process, can be set to "Running" or "Destroyed"
362 GraphicsCompileShader:
364 Name of the shader we are in the process of compiling, if applicable. See
365 file names in gfx/wr/webrender/res/* for the possible values.
368 GraphicsCriticalError:
370 Information of a critical error that occurred within the graphics code.
375 Name of the shader that is currently bound for a draw call, if applicable.
376 See file names in gfx/wr/webrender/res/* for the possible values.
379 GraphicsNumActiveRenderers:
381 Number of webrender renderer instances that are not in a paused state.
384 GraphicsNumRenderers:
386 Total number of webrender renderer instances.
391 Set to 1 by the graphics driver crash guard when it's activated.
396 True if the app was invoked in headless mode via `--headless ...` or `--backgroundtask ...`, false otherwise.
402 The allocation kind, if the crash involved a bad access of a special PHC
408 The allocation's base address, if the crash involved a bad access of a
409 special PHC allocation. Encoded as a decimal address.
414 The allocation's usable size, if the crash involved a bad access of a
415 special PHC allocation.
416 # A 32-bit integer is enough because the maximum usable size of a special PHC
417 # allocation is far less than 2 GiB.
422 The allocation's allocation stack trace, if the crash involved a bad access
423 of a special PHC allocation. Encoded as a comma-separated list of decimal
429 The allocation's free stack trace, if the crash involved a bad access
430 of a special PHC allocation. Encoded as a comma-separated list of decimal
434 HasDeviceTouchScreen:
436 Set to 1 if the device had a touch-screen, this only applies to Firefox
437 desktop as on mobile devices we assume a touch-screen is always present.
442 The time when Firefox was installed expressed as seconds since the Epoch
443 type: string # This should be u64 but we currently handle it as a string
447 Set before a content process crashes because of an IPC channel error, holds
448 a description of the error.
452 IpcCreatePipeCloExecErrno:
454 errno value retrieved after failing to set the O_CLOEXEC flag on a pipe
458 IpcCreatePipeFcntlErrno:
460 errno value retrieved after a call to fcntl() on a pipe used for IPC failed.
463 IpcCreatePipeSocketPairErrno:
465 errno value retrieved after a socketpair() call failed while creating an IPC
471 Describes a fatal error that occurred during IPC operation.
474 IPCFatalErrorProtocol:
476 Name of the protocol used by IPC when a fatal error occurred.
479 IPCMessageLargeBufferShmemFailureSize:
481 Size of failed shmem allocations which led to data being sent inline in the
482 IPC message that caused a crash because it was too large.
487 Name of the IPC message that caused a crash because it was too large.
492 Size of the IPC message that caused a crash because it was too large.
497 Reason why reading an object via IPC failed.
502 IPC shutdown state, can be set to either "RecvShutdown" or
503 "SendFinishShutdown" by a content process while it's shutting down.
508 Description of the last system error that occurred during IPC operation.
513 Set if the crash was the result of a hang, with a value which describes the
514 type of hang (e.g. "ui" or "shutdown").
520 If true then the JavaScript garbage collector was running when the crash
528 If true then the Wayland windowing system was in use.
531 IsWebRenderResourcePathOverridden:
533 If true then the WebRender resources (i.e. shaders) are loaded from a user specified path.
538 JSON structured Java stack trace, only present on Firefox for Android if we encounter an
539 uncaught Java exception.
544 Java stack trace, only present on Firefox for Android if we encounter an
545 uncaught Java exception.
550 If an actor is currently treating a message, this is the name of the message.
556 If an actor is currently treating a message, this is the name of the actor.
560 JSLargeAllocationFailure:
562 A large allocation couldn't be satisfied, check the JSOutOfMemory
563 description for the possible values of this annotation.
568 The error raised when attempting to import a critical JS module from C++
573 A small allocation couldn't be satisfied, the annotation may contain the
574 "Reporting", "Reported" or "Recovered" value. The first one means that
575 we crashed while responding to the OOM condition (possibly while running a
576 memory-pressure observers), the second that we crashed after having tried to
577 free some memory, and the last that the GC had managed to free enough memory
578 to satisfy the allocation.
582 LastInteractionDuration:
584 How long the user had been inactive in seconds if the user was inactive
585 at crash. The value is not set if the user state was active.
591 True if the last startup was detected to have been a crash.
596 The current memory pressure state as provided by the macOS memory pressure
597 dispatch source. The annotation value is one of "Normal" for no memory
598 pressure, "Unset" indicating a memory pressure event has not been received,
599 "Warning" or "Critical" mapping to the system memory pressure levels,
600 or "Unexpected" for an unexpected level. This is a Mac-specific annotation.
603 MacMemoryPressureNormalTime:
605 The time when the memory pressure state last transitioned to 'Normal'
606 expressed as seconds since the Epoch.
609 MacMemoryPressureWarningTime:
611 The time when the memory pressure state last transitioned to 'Warning'
612 expressed as seconds since the Epoch.
615 MacMemoryPressureCriticalTime:
617 The time when the memory pressure state last transitioned to 'Critical'
618 expressed as seconds since the Epoch.
621 MacMemoryPressureSysctl:
623 The value of the memory pressure sysctl
624 'kern.memorystatus_vm_pressure_level'. Indicates which memory
625 pressure level the system is in at the time of the crash. The expected
626 values are one of 4 (Critical), 2 (Warning), or 1 (Normal).
629 MacAvailableMemorySysctl:
631 The value of the available memory sysctl 'kern.memorystatus_level'.
632 Expected to be a percentage integer value.
635 LinuxUnderMemoryPressure:
637 Set to true if the memory pressure watcher was under memory pressure when
641 LauncherProcessState:
643 Launcher process enabled state. The integer value of this annotation must
644 match with one of the values in the
645 mozilla::LauncherRegistryInfo::EnableState enum
648 LowPhysicalMemoryEvents:
650 Number of times the available memory tracker has detected that free
651 physical memory is running low. This is a Windows-specific annotation.
656 MainThreadRunnableName:
658 Name of the currently executing nsIRunnable on the main thread.
664 Plaintext description of why Firefox crashed, this is usually set by
665 assertions and the like.
671 Miscellaneous notes that can be appended to a crash.
676 Size of the allocation that caused an out-of-memory condition.
683 Plugin filename, only the process holding the plugin has this annotation.
688 Display name of a plugin, only the process holding the plugin has this
694 Version of a plugin, only the process holding the plugin has this
700 Type of the process that crashed, the possible values are defined in
706 Application name (e.g. Firefox).
712 Application UUID (e.g. ec8030f7-c20a-464f-9b0e-13a3a9e97384).
716 ProfilerChildShutdownPhase:
718 When a child process shuts down, this describes if the profiler is running,
719 and the point the profiler shutdown sequence has reached.
723 PurgeablePhysicalMemory:
725 macOS only. Amount of physical memory currently allocated but which may
726 be deallocated by the system in case of memory pressure. Populated from
727 vm_statistics64_data_t::purgeable_count * vm_page_size.
731 QuotaManagerShutdownTimeout:
733 This annotation is present if the quota manager shutdown (resp. the shutdown
734 of the quota manager clients) was not finished in time and the browser was
735 crashed instead of waiting for the shutdown to finish. The status of objects
736 which were blocking completion of the shutdown when reaching the timeout
737 is contained in the annotation.
739 In the case of IndexedDB, objects are divided into three groups:
740 FactoryOperations, LiveDatabases and DatabaseMaintenances.
742 In the case of LocalStorage, objects are divided into three groups:
743 PrepareDatastoreOperations, Datastores and LiveDatabases.
745 In the case of Cache API, objects are in one group only:
748 Each group is reported separately and contains the number of objects in the
749 group and the status of individual objects in the group (duplicate entries
751 "GroupName: N (objectStatus1, objectStatus2, ...)" where N is the number of
752 objects in the group.
754 The status of individual objects is constructed by taking selected object
755 properties. Properties which contain origin strings are anonymized.
757 In addition, intermediate steps are recorded for change events after shutdown
758 started. These include the time difference and the type of object.
762 QuotaManagerStorageIsNetworkResource:
764 On Windows, this indicates if QM's base dir lives on a network resource.
765 It is the direct result of the Win32 API function PathIsNetworkPath.
770 Status of the RDD process, can be set to "Running" or "Destroyed"
775 Application release channel (e.g. default, beta, ...)
781 Type of the content process, can be set to "web", "file" or "extension".
787 Set to 1 if the browser was started in safe mode.
790 SecondsSinceLastCrash:
792 Time in seconds since the last crash occurred.
798 URL used to post the crash report.
803 Shutdown step at which the browser crashed, can be set to "quit-application",
804 "profile-change-teardown", "profile-before-change", "xpcom-will-shutdown" or
811 One out of "Unknown", "AppClose", "AppRestart", "OSForceClose",
812 "OSSessionEnd", "OSShutdown" or "WinUnexpectedMozQuit".
818 True if the startup cache was deemed valid and usable. Will be false if the
819 last session used a different browser version or had a startup cache.
824 If set to 1 then this crash occurred during startup.
830 The time when Firefox was launched expressed in seconds since the Epoch.
833 StorageConnectionNotClosed:
835 This annotation is added when a mozStorage connection has not been properly
836 closed during shutdown. The annotation holds the filename of the database
837 associated with the connection.
842 This annotation can hold one of the following five values depending on how
843 this crash was submitted by the user:
844 * Auto: the user had opted-in to auto-submission
845 * Infobar: the user clicked on the infobar to submit the crash
846 * AboutCrashes: the user sent the crash from the about:crashes page
847 * CrashedTab: the user sent the crash from a crashed tab page
848 * Client: the user sent the crash using the crash reporter client
851 SystemMemoryUsePercentage:
853 Windows-only, percentage of physical memory in use. This annotation is
854 populated with the contents of the MEMORYSTATUSEX's structure dwMemoryLoad
864 TelemetryProfileGroupId:
866 Telemetry profile group ID.
869 TelemetryEnvironment:
871 The telemetry environment in JSON format.
876 Telemetry server URL. Used to send main process crash pings directly from
877 the crashreporter client.
882 Telemetry session ID.
887 Annotation used in tests.
892 Annotation used in tests.
897 Amount of memory in bytes consumed by textures.
904 Whether Socorro can selectively discard this crash report or not. If set
905 to "0" the crash report will always be processed by Socorro. Do not set
906 this annotation within Gecko code, it's only supposed to be used by the
907 crash reporting machinery.
912 Maximum amount of memory that can be committed without extending the swap/page file.
913 - Under Windows, populated with the contents of the PERFORMANCE_INFORMATION's
914 structure CommitLimit field.
915 - Under Linux, populated with /proc/meminfo MemTotal + SwapTotal. The swap file
916 typically cannot be extended, so that's a hard limit.
917 - Not available on other systems.
923 Amount of physical memory in bytes.
924 - Under Windows, populated with the contents of the MEMORYSTATUSEX's structure
926 - Under macOS, populated with sysctl "hw.memsize".
927 - Under Linux, populated with /proc/meminfo's "MemTotal".
928 - Not available on other systems.
934 Size of the virtual address space.
935 - Under Windows, populated with the contents of the MEMORYSTATUSEX's structure
936 ullTotalVirtual field.
937 - Not available on other platforms.
941 UnknownNetAddrSocketFamily:
943 An unknown network address family was requested to Necko. The value is the
944 requested family number.
949 Uptime in seconds. This annotation uses a string instead of an integer
950 because it has a fractional component.
951 type: string # This is a floating-point number but we treat it as a string
961 The offsets of the nsStandardURL segments that fail a sanity check
964 User32BeforeBlocklist:
966 Set to 1 if user32.dll was loaded before we could install the DLL blocklist.
976 UtilityProcessStatus:
978 Status of the Utility process, can be set to "Running" or "Destroyed"
983 Comma-separated list of IPC actors name running on this Utility process instance
989 Application vendor (e.g. Mozilla).
1000 Status of the VR process, can be set to "Running" or "Destroyed"
1003 WasmLibrarySandboxMallocFailed:
1005 Set to 1 if a rlbox wasm library sandbox ran out of memory, causing a
1006 malloc inside the sandbox to fail.
1009 WindowsFileDialogErrorCode:
1011 The HRESULT returned from a Win32 system call leading to termination of the
1012 file-dialog utility process. MozCrashReason is expected to provide context
1014 type: u32 # This is an HRESULT which is defined as signed, but we don't want to print it as a signed integer
1017 WindowsPackageFamilyName:
1019 If running in a Windows package context, the package family name, per
1020 https://docs.microsoft.com/en-us/windows/win32/api/appmodel/nf-appmodel-getcurrentpackagefamilyname.
1022 The package family name is only included when it is likely to have been produced by Mozilla: it
1023 starts "Mozilla." or "MozillaCorporation.".
1027 WindowsErrorReporting:
1029 Set to 1 if this crash was intercepted via the Windows Error Reporting
1030 runtime exception module.
1036 Information on winsock LSPs injected in our networking stack.
1039 XPCOMSpinEventLoopStack:
1041 If we crash while some code is spinning manually the event loop on the
1042 main thread, we will see the stack of nested annotations here.
1043 If the crashing process was killed (e.g. due to an IPC error), this
1044 annotation may refer to the parent process that killed it, look out for
1045 the prefix ("default" means parent) and see bug 1741131 for details.