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.
481 Name of the IPC message that caused a crash because it was too large.
486 Size of the IPC message that caused a crash because it was too large.
491 Reason why reading an object via IPC failed.
496 IPC shutdown state, can be set to either "RecvShutdown" or
497 "SendFinishShutdown" by a content process while it's shutting down.
502 Description of the last system error that occurred during IPC operation.
507 Set if the crash was the result of a hang, with a value which describes the
508 type of hang (e.g. "ui" or "shutdown").
514 If true then the JavaScript garbage collector was running when the crash
522 If true then the Wayland windowing system was in use.
525 IsWebRenderResourcePathOverridden:
527 If true then the WebRender resources (i.e. shaders) are loaded from a user specified path.
532 JSON structured Java stack trace, only present on Firefox for Android if we encounter an
533 uncaught Java exception.
538 Java stack trace, only present on Firefox for Android if we encounter an
539 uncaught Java exception.
544 If an actor is currently treating a message, this is the name of the message.
550 If an actor is currently treating a message, this is the name of the actor.
554 JSLargeAllocationFailure:
556 A large allocation couldn't be satisfied, check the JSOutOfMemory
557 description for the possible values of this annotation.
562 The error raised when attempting to import a critical JS module from C++
567 A small allocation couldn't be satisfied, the annotation may contain the
568 "Reporting", "Reported" or "Recovered" value. The first one means that
569 we crashed while responding to the OOM condition (possibly while running a
570 memory-pressure observers), the second that we crashed after having tried to
571 free some memory, and the last that the GC had managed to free enough memory
572 to satisfy the allocation.
576 LastInteractionDuration:
578 How long the user had been inactive in seconds if the user was inactive
579 at crash. The value is not set if the user state was active.
585 True if the last startup was detected to have been a crash.
590 The current memory pressure state as provided by the macOS memory pressure
591 dispatch source. The annotation value is one of "Normal" for no memory
592 pressure, "Unset" indicating a memory pressure event has not been received,
593 "Warning" or "Critical" mapping to the system memory pressure levels,
594 or "Unexpected" for an unexpected level. This is a Mac-specific annotation.
597 MacMemoryPressureNormalTime:
599 The time when the memory pressure state last transitioned to 'Normal'
600 expressed as seconds since the Epoch.
603 MacMemoryPressureWarningTime:
605 The time when the memory pressure state last transitioned to 'Warning'
606 expressed as seconds since the Epoch.
609 MacMemoryPressureCriticalTime:
611 The time when the memory pressure state last transitioned to 'Critical'
612 expressed as seconds since the Epoch.
615 MacMemoryPressureSysctl:
617 The value of the memory pressure sysctl
618 'kern.memorystatus_vm_pressure_level'. Indicates which memory
619 pressure level the system is in at the time of the crash. The expected
620 values are one of 4 (Critical), 2 (Warning), or 1 (Normal).
623 MacAvailableMemorySysctl:
625 The value of the available memory sysctl 'kern.memorystatus_level'.
626 Expected to be a percentage integer value.
629 LinuxUnderMemoryPressure:
631 Set to true if the memory pressure watcher was under memory pressure when
635 LauncherProcessState:
637 Launcher process enabled state. The integer value of this annotation must
638 match with one of the values in the
639 mozilla::LauncherRegistryInfo::EnableState enum
642 LowPhysicalMemoryEvents:
644 Number of times the available memory tracker has detected that free
645 physical memory is running low. This is a Windows-specific annotation.
650 MainThreadRunnableName:
652 Name of the currently executing nsIRunnable on the main thread.
658 Plaintext description of why Firefox crashed, this is usually set by
659 assertions and the like.
665 Miscellaneous notes that can be appended to a crash.
670 Size of the allocation that caused an out-of-memory condition.
677 Plugin filename, only the process holding the plugin has this annotation.
682 Display name of a plugin, only the process holding the plugin has this
688 Version of a plugin, only the process holding the plugin has this
694 Type of the process that crashed, the possible values are defined in
700 Application name (e.g. Firefox).
706 Application UUID (e.g. ec8030f7-c20a-464f-9b0e-13a3a9e97384).
710 ProfilerChildShutdownPhase:
712 When a child process shuts down, this describes if the profiler is running,
713 and the point the profiler shutdown sequence has reached.
717 PurgeablePhysicalMemory:
719 macOS only. Amount of physical memory currently allocated but which may
720 be deallocated by the system in case of memory pressure. Populated from
721 vm_statistics64_data_t::purgeable_count * vm_page_size.
725 QuotaManagerShutdownTimeout:
727 This annotation is present if the quota manager shutdown (resp. the shutdown
728 of the quota manager clients) was not finished in time and the browser was
729 crashed instead of waiting for the shutdown to finish. The status of objects
730 which were blocking completion of the shutdown when reaching the timeout
731 is contained in the annotation.
733 In the case of IndexedDB, objects are divided into three groups:
734 FactoryOperations, LiveDatabases and DatabaseMaintenances.
736 In the case of LocalStorage, objects are divided into three groups:
737 PrepareDatastoreOperations, Datastores and LiveDatabases.
739 In the case of Cache API, objects are in one group only:
742 Each group is reported separately and contains the number of objects in the
743 group and the status of individual objects in the group (duplicate entries
745 "GroupName: N (objectStatus1, objectStatus2, ...)" where N is the number of
746 objects in the group.
748 The status of individual objects is constructed by taking selected object
749 properties. Properties which contain origin strings are anonymized.
751 In addition, intermediate steps are recorded for change events after shutdown
752 started. These include the time difference and the type of object.
756 QuotaManagerStorageIsNetworkResource:
758 On Windows, this indicates if QM's base dir lives on a network resource.
759 It is the direct result of the Win32 API function PathIsNetworkPath.
764 Status of the RDD process, can be set to "Running" or "Destroyed"
769 Application release channel (e.g. default, beta, ...)
775 Type of the content process, can be set to "web", "file" or "extension".
781 Set to 1 if the browser was started in safe mode.
784 SecondsSinceLastCrash:
786 Time in seconds since the last crash occurred.
792 URL used to post the crash report.
797 Shutdown step at which the browser crashed, can be set to "quit-application",
798 "profile-change-teardown", "profile-before-change", "xpcom-will-shutdown" or
805 One out of "Unknown", "AppClose", "AppRestart", "OSForceClose",
806 "OSSessionEnd", "OSShutdown" or "WinUnexpectedMozQuit".
812 True if the startup cache was deemed valid and usable. Will be false if the
813 last session used a different browser version or had a startup cache.
818 If set to 1 then this crash occurred during startup.
824 The time when Firefox was launched expressed in seconds since the Epoch.
827 StorageConnectionNotClosed:
829 This annotation is added when a mozStorage connection has not been properly
830 closed during shutdown. The annotation holds the filename of the database
831 associated with the connection.
836 This annotation can hold one of the following five values depending on how
837 this crash was submitted by the user:
838 * Auto: the user had opted-in to auto-submission
839 * Infobar: the user clicked on the infobar to submit the crash
840 * AboutCrashes: the user sent the crash from the about:crashes page
841 * CrashedTab: the user sent the crash from a crashed tab page
842 * Client: the user sent the crash using the crash reporter client
845 SystemMemoryUsePercentage:
847 Windows-only, percentage of physical memory in use. This annotation is
848 populated with the contents of the MEMORYSTATUSEX's structure dwMemoryLoad
858 TelemetryEnvironment:
860 The telemetry environment in JSON format.
865 Telemetry server URL. Used to send main process crash pings directly from
866 the crashreporter client.
871 Telemetry session ID.
876 Annotation used in tests.
881 Annotation used in tests.
886 Amount of memory in bytes consumed by textures.
893 Whether Socorro can selectively discard this crash report or not. If set
894 to "0" the crash report will always be processed by Socorro. Do not set
895 this annotation within Gecko code, it's only supposed to be used by the
896 crash reporting machinery.
901 Maximum amount of memory that can be committed without extending the swap/page file.
902 - Under Windows, populated with the contents of the PERFORMANCE_INFORMATION's
903 structure CommitLimit field.
904 - Under Linux, populated with /proc/meminfo MemTotal + SwapTotal. The swap file
905 typically cannot be extended, so that's a hard limit.
906 - Not available on other systems.
912 Amount of physical memory in bytes.
913 - Under Windows, populated with the contents of the MEMORYSTATUSEX's structure
915 - Under macOS, populated with sysctl "hw.memsize".
916 - Under Linux, populated with /proc/meminfo's "MemTotal".
917 - Not available on other systems.
923 Size of the virtual address space.
924 - Under Windows, populated with the contents of the MEMORYSTATUSEX's structure
925 ullTotalVirtual field.
926 - Not available on other platforms.
930 UnknownNetAddrSocketFamily:
932 An unknown network address family was requested to Necko. The value is the
933 requested family number.
938 Uptime in seconds. This annotation uses a string instead of an integer
939 because it has a fractional component.
940 type: string # This is a floating-point number but we treat it as a string
950 The offsets of the nsStandardURL segments that fail a sanity check
953 User32BeforeBlocklist:
955 Set to 1 if user32.dll was loaded before we could install the DLL blocklist.
965 UtilityProcessStatus:
967 Status of the Utility process, can be set to "Running" or "Destroyed"
972 Comma-separated list of IPC actors name running on this Utility process instance
978 Application vendor (e.g. Mozilla).
988 Status of the VR process, can be set to "Running" or "Destroyed"
991 WasmLibrarySandboxMallocFailed:
993 Set to 1 if a rlbox wasm library sandbox ran out of memory, causing a
994 malloc inside the sandbox to fail.
997 WindowsFileDialogErrorCode:
999 The HRESULT returned from a Win32 system call leading to termination of the
1000 file-dialog utility process. MozCrashReason is expected to provide context
1002 type: u32 # This is an HRESULT which is defined as signed, but we don't want to print it as a signed integer
1005 WindowsPackageFamilyName:
1007 If running in a Windows package context, the package family name, per
1008 https://docs.microsoft.com/en-us/windows/win32/api/appmodel/nf-appmodel-getcurrentpackagefamilyname.
1010 The package family name is only included when it is likely to have been produced by Mozilla: it
1011 starts "Mozilla." or "MozillaCorporation.".
1015 WindowsErrorReporting:
1017 Set to 1 if this crash was intercepted via the Windows Error Reporting
1018 runtime exception module.
1024 Information on winsock LSPs injected in our networking stack.
1027 XPCOMSpinEventLoopStack:
1029 If we crash while some code is spinning manually the event loop on the
1030 main thread, we will see the stack of nested annotations here.
1031 If the crashing process was killed (e.g. due to an IPC error), this
1032 annotation may refer to the parent process that killed it, look out for
1033 the prefix ("default" means parent) and see bug 1741131 for details.