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`, `integer` or `boolean`.
6 # The latter are stringified to `1` for true and `0` for false.
8 # Additionally a field can have the following optional fields:
9 # - altname: A string that will be used when writing out the annotation to the
10 # .extra file instead of the annotation name
11 # - ping: A boolean that indicates whether the annotation is allowlisted for
12 # going into the crash ping, if not specified this defaults to false
16 Message passed to NS_DebugBreak().
21 Set to "Active" by the accessibility service when it is active.
26 Accessibility client ID.
29 AccessibilityInProcClient:
31 Hexadecimal mask of in-process accessibility consumers, see
32 accessible/windows/msaa/Compatibility.h for the mappings.
37 Graphics adapter name.
42 Graphics adapter driver vendor.
47 Graphics adapter driver version.
52 Graphics adapter subsystem ID.
57 Graphics adapter vendor name.
62 Comma separated list of additional minidumps for this crash, each element
63 in the list represent the suffix used in the dump filename. E.g. the
64 "browser" entry for crash fa909194-737b-4b93-b8da-da110ac785e0 implies the
65 existence of the fa909194-737b-4b93-b8da-da110ac785e0-browser.dmp file.
70 List of currently enabled add-ons.
76 The name of the underlying board used by the Android device. e.g. "k68v1_64"
81 The consumer-visible brand associated with this Android device. e.g. "vivo"
86 The Android primary CPU ABI being used. e.g. "arm64-v8a"
91 The Android secondary CPU ABI being used. e.g. "armeabi-v7a"
96 Android device name. e.g. "1907"
101 End-user visible display name of the build id for the Android build.
102 e.g. "SP1A.210812.003 release-keys"
107 A string that uniquely identifies the Android build. e.g.
108 "vivo/1907/1907:12/SP1A.210812.003/compiler03091510:user/release-keys"
113 The name of the Android hardware from "/proc". e.g. "mt6768"
116 Android_Manufacturer:
118 Android device manufacturer. e.g. "vivo"
123 End-user visible Android device model name. e.g. "vivo 1907"
128 The package name of an Android application that uniquely identifies the
129 application on the device, Google Play Store, and third-party Android
130 stores. e.g. "com.example.referencebrowser"
135 The developer preview revision of a prerelease SDK plus The current
136 development codename, or the string "REL" if this is a release build.
142 List of DLLs loaded when launching any application on Windows, this
143 reflects the contents of the AppInit_DLLs registry key.
148 Product application's build ID.
151 AsyncShutdownTimeout:
153 This annotation is present if a shutdown blocker was not released in time
154 and the browser was crashed instead of waiting for shutdown to finish. The
155 condition that caused the hang is contained in the annotation.
161 Available commit-space in bytes.
162 - Under Windows, computed from the PERFORMANCE_INFORMATION structure by substracting
163 the CommitTotal field from the CommitLimit field.
164 - Under Linux, computed from /proc/meminfo's CommitLimit - Committed_AS. Note that
165 the kernel is not guaranteed to enforce that CommittedLimit >= Committed_AS. If
166 Committed_AS > CommittedLimit, this value is set to 0.
167 - Not available on other platforms.
171 AvailablePhysicalMemory:
173 Amount of free physical memory in bytes.
174 - Under Windows, populated with the contents of the MEMORYSTATUSEX's structure
176 - Under macOS, populated with vm_statistics64_data_t::free_count.
177 - Under Linux, populated with /proc/meminfo's MemFree.
178 - Not available on other platforms.
184 Amount of free swap space in bytes.
185 - Under macOS, populated with the contents of
186 sysctl "vm.swapusage" :: xsu_avail.
187 - Under Linux, populated with /proc/meminfo's SwapFree.
188 - Not available on other platforms.
192 AvailableVirtualMemory:
194 Amount of free virtual memory in bytes
195 - Under Windows, populated with the contents of the MEMORYSTATUSEX's structure ullAvailVirtual field.
196 - Under Linux, populated with /proc/meminfo's MemAvailable.
197 - Not available on other platforms.
198 - For macOS, see AvailableSwapMemory, AvailablePhysicalMemory and PurgeablePhysicalMemory.
204 True if the app was invoked in background task mode via `--backgroundtask ...`, false otherwise.
209 If the app was invoked in background task mode via `--backgroundtask <task name>`, the string "task name".
215 Comma-separated list of blocked DLLS, Windows-only
221 Set to 1 if the DLL blocklist could not be initialized.
227 Trail of events that occurred before a report. this will consist of multiple breadcrumbs with
228 timestamp, message, category, level, type and data in JSON format.
233 Application build ID, the format is YYYYMMDDHHMMSS.
237 ContentSandboxCapabilities:
239 List of capabilities of the content process sandbox.
242 ContentSandboxEnabled:
244 Set to 1 when content process sandboxing is enabled.
247 ContentSandboxCapable:
249 Set to 1 if the client is capable of content sandboxing.
254 Content sandbox level.
257 ContentSandboxWin32kState:
259 Content sandbox Win32k state
269 Version of the CPU microcode.
274 Crash time in seconds since the Epoch.
280 Reason why the cycle collector crashed.
285 Desktop environment used on Linux, e.g. GNOME, KDE, XFCE, etc.
290 Reason why a DirectX device has been reset, Windows only.
295 Set to 1 when DOM fission is enabled, and subframes are potentially loaded
296 in a separate process.
302 Set to 1 when a tab is running in a content process
307 Error message of the minidump writer, in case there was an error during dumping.
310 EMCheckCompatibility:
312 Set to 1 if add-on compatibility checking is enabled.
315 EventLoopNestingLevel:
317 Present only if higher than 0, indicates that we're running in a nested
318 event loop and indicates the nesting level.
322 ExperimentalFeatures:
324 Comma-separated list of enabled experimental features from about:preferences#experimental.
330 Set before attempting to load a font to help diagnose crashes during loading.
336 Holds the path to the GMP plugin library.
341 Set to 1 if the GMP plugin is enabled.
344 GPUProcessLaunchCount:
346 Number of times the GPU process was launched.
352 Status of the GPU process, can be set to "Running" or "Destroyed"
355 GraphicsCompileShader:
357 Name of the shader we are in the process of compiling, if applicable. See
358 file names in gfx/wr/webrender/res/* for the possible values.
361 GraphicsCriticalError:
363 Information of a critical error that occurred within the graphics code.
368 Name of the shader that is currently bound for a draw call, if applicable.
369 See file names in gfx/wr/webrender/res/* for the possible values.
372 GraphicsNumActiveRenderers:
374 Number of webrender renderer instances that are not in a paused state.
377 GraphicsNumRenderers:
379 Total number of webrender renderer instances.
384 Set to 1 by the graphics driver crash guard when it's activated.
389 True if the app was invoked in headless mode via `--headless ...` or `--backgroundtask ...`, false otherwise.
395 The allocation kind, if the crash involved a bad access of a special PHC
401 The allocation's base address, if the crash involved a bad access of a
402 special PHC allocation. Encoded as a decimal address.
407 The allocation's usable size, if the crash involved a bad access of a
408 special PHC allocation.
409 # A 32-bit integer is enough because the maximum usable size of a special PHC
410 # allocation is far less than 2 GiB.
415 The allocation's allocation stack trace, if the crash involved a bad access
416 of a special PHC allocation. Encoded as a comma-separated list of decimal
422 The allocation's free stack trace, if the crash involved a bad access
423 of a special PHC allocation. Encoded as a comma-separated list of decimal
427 HasDeviceTouchScreen:
429 Set to 1 if the device had a touch-screen, this only applies to Firefox
430 desktop as on mobile devices we assume a touch-screen is always present.
435 The time when Firefox was installed expressed as seconds since the Epoch
440 Set before a content process crashes because of an IPC channel error, holds
441 a description of the error.
445 IpcCreatePipeCloExecErrno:
447 errno value retrieved after failing to set the O_CLOEXEC flag on a pipe
451 IpcCreatePipeFcntlErrno:
453 errno value retrieved after a call to fcntl() on a pipe used for IPC failed.
456 IpcCreatePipeSocketPairErrno:
458 errno value retrieved after a socketpair() call failed while creating an IPC
464 Describes a fatal error that occurred during IPC operation.
467 IPCFatalErrorProtocol:
469 Name of the protocol used by IPC when a fatal error occurred.
474 Name of the IPC message that caused a crash because it was too large.
479 Size of the IPC message that caused a crash because it was too large.
484 Reason why reading an object via IPC failed.
489 IPC shutdown state, can be set to either "RecvShutdown" or
490 "SendFinishShutdown" by a content process while it's shutting down.
495 Description of the last system error that occurred during IPC operation.
500 Set if the crash was the result of a hang, with a value which describes the
501 type of hang (e.g. "ui" or "shutdown").
507 If true then the JavaScript garbage collector was running when the crash
514 If true then the Wayland windowing system was in use.
517 IsWebRenderResourcePathOverridden:
519 If true then the WebRender resources (i.e. shaders) are loaded from a user specified path.
524 JSON structured Java stack trace, only present on Firefox for Android if we encounter an
525 uncaught Java exception.
530 Java stack trace, only present on Firefox for Android if we encounter an
531 uncaught Java exception.
536 If an actor is currently treating a message, this is the name of the message.
542 If an actor is currently treating a message, this is the name of the actor.
546 JSLargeAllocationFailure:
548 A large allocation couldn't be satisfied, check the JSOutOfMemory
549 description for the possible values of this annotation.
554 The error raised when attempting to import a critical JS module from C++
559 A small allocation couldn't be satisfied, the annotation may contain the
560 "Reporting", "Reported" or "Recovered" value. The first one means that
561 we crashed while responding to the OOM condition (possibly while running a
562 memory-pressure observers), the second that we crashed after having tried to
563 free some memory, and the last that the GC had managed to free enough memory
564 to satisfy the allocation.
568 LastInteractionDuration:
570 How long the user had been inactive in seconds if the user was inactive
571 at crash. The value is not set if the user state was active.
577 True if the last startup was detected to have been a crash.
582 The current memory pressure state as provided by the macOS memory pressure
583 dispatch source. The annotation value is one of "Normal" for no memory
584 pressure, "Unset" indicating a memory pressure event has not been received,
585 "Warning" or "Critical" mapping to the system memory pressure levels,
586 or "Unexpected" for an unexpected level. This is a Mac-specific annotation.
589 MacMemoryPressureNormalTime:
591 The time when the memory pressure state last transitioned to 'Normal'
592 expressed as seconds since the Epoch.
595 MacMemoryPressureWarningTime:
597 The time when the memory pressure state last transitioned to 'Warning'
598 expressed as seconds since the Epoch.
601 MacMemoryPressureCriticalTime:
603 The time when the memory pressure state last transitioned to 'Critical'
604 expressed as seconds since the Epoch.
607 MacMemoryPressureSysctl:
609 The value of the memory pressure sysctl
610 'kern.memorystatus_vm_pressure_level'. Indicates which memory
611 pressure level the system is in at the time of the crash. The expected
612 values are one of 4 (Critical), 2 (Warning), or 1 (Normal).
615 MacAvailableMemorySysctl:
617 The value of the available memory sysctl 'kern.memorystatus_level'.
618 Expected to be a percentage integer value.
621 LinuxUnderMemoryPressure:
623 Set to true if the memory pressure watcher was under memory pressure when
627 LauncherProcessState:
629 Launcher process enabled state. The integer value of this annotation must
630 match with one of the values in the
631 mozilla::LauncherRegistryInfo::EnableState enum
634 LowPhysicalMemoryEvents:
636 Number of times the available memory tracker has detected that free
637 physical memory is running low. This is a Windows-specific annotation.
641 MainThreadRunnableName:
643 Name of the currently executing nsIRunnable on the main thread.
649 Plaintext description of why Firefox crashed, this is usually set by
650 assertions and the like.
656 Miscellaneous notes that can be appended to a crash.
661 Size of the allocation that caused an out-of-memory condition.
667 Plugin filename, only the process holding the plugin has this annotation.
672 Display name of a plugin, only the process holding the plugin has this
678 Version of a plugin, only the process holding the plugin has this
684 Type of the process that crashed, the possible values are defined in
690 Application name (e.g. Firefox).
696 Application UUID (e.g. ec8030f7-c20a-464f-9b0e-13a3a9e97384).
700 ProfilerChildShutdownPhase:
702 When a child process shuts down, this describes if the profiler is running,
703 and the point the profiler shutdown sequence has reached.
707 PurgeablePhysicalMemory:
709 macOS only. Amount of physical memory currently allocated but which may
710 be deallocated by the system in case of memory pressure. Populated from
711 vm_statistics64_data_t::purgeable_count * vm_page_size.
715 QuotaManagerShutdownTimeout:
717 This annotation is present if the quota manager shutdown (resp. the shutdown
718 of the quota manager clients) was not finished in time and the browser was
719 crashed instead of waiting for the shutdown to finish. The status of objects
720 which were blocking completion of the shutdown when reaching the timeout
721 is contained in the annotation.
723 In the case of IndexedDB, objects are divided into three groups:
724 FactoryOperations, LiveDatabases and DatabaseMaintenances.
726 In the case of LocalStorage, objects are divided into three groups:
727 PrepareDatastoreOperations, Datastores and LiveDatabases.
729 In the case of Cache API, objects are in one group only:
732 Each group is reported separately and contains the number of objects in the
733 group and the status of individual objects in the group (duplicate entries
735 "GroupName: N (objectStatus1, objectStatus2, ...)" where N is the number of
736 objects in the group.
738 The status of individual objects is constructed by taking selected object
739 properties. Properties which contain origin strings are anonymized.
741 In addition, intermediate steps are recorded for change events after shutdown
742 started. These include the time difference and the type of object.
748 Status of the RDD process, can be set to "Running" or "Destroyed"
753 Application release channel (e.g. default, beta, ...)
759 Type of the content process, can be set to "web", "file" or "extension".
765 Set to 1 if the browser was started in safe mode.
768 SecondsSinceLastCrash:
770 Time in seconds since the last crash occurred.
776 URL used to post the crash report.
781 Shutdown step at which the browser crashed, can be set to "quit-application",
782 "profile-change-teardown", "profile-before-change", "xpcom-will-shutdown" or
789 One out of "Unknown", "AppClose", "AppRestart", "OSForceClose",
790 "OSSessionEnd", "OSShutdown" or "WinUnexpectedMozQuit".
796 True if the startup cache was deemed valid and usable. Will be false if the
797 last session used a different browser version or had a startup cache.
802 If set to 1 then this crash occurred during startup.
808 The time when Firefox was launched expressed in seconds since the Epoch.
811 StorageConnectionNotClosed:
813 This annotation is added when a mozStorage connection has not been properly
814 closed during shutdown. The annotation holds the filename of the database
815 associated with the connection.
820 This annotation can hold one of the following five values depending on how
821 this crash was submitted by the user:
822 * Auto: the user had opted-in to auto-submission
823 * Infobar: the user clicked on the infobar to submit the crash
824 * AboutCrashes: the user sent the crash from the about:crashes page
825 * CrashedTab: the user sent the crash from a crashed tab page
826 * Client: the user sent the crash using the crash reporter client
829 SystemMemoryUsePercentage:
831 Windows-only, percentage of physical memory in use. This annotation is
832 populated with the contents of the MEMORYSTATUSEX's structure dwMemoryLoad
842 TelemetryEnvironment:
844 The telemetry environment in JSON format.
849 Telemetry server URL. Used to send main process crash pings directly from
850 the crashreporter client.
855 Telemetry session ID.
860 Annotation used in tests.
865 Annotation used in tests.
870 Amount of memory in bytes consumed by textures.
876 Whether Socorro can selectively discard this crash report or not. If set
877 to "0" the crash report will always be processed by Socorro. Do not set
878 this annotation within Gecko code, it's only supposed to be used by the
879 crash reporting machinery.
884 Maximum amount of memory that can be committed without extending the swap/page file.
885 - Under Windows, populated with the contents of the PERFORMANCE_INFORMATION's
886 structure CommitLimit field.
887 - Under Linux, populated with /proc/meminfo MemTotal + SwapTotal. The swap file
888 typically cannot be extended, so that's a hard limit.
889 - Not available on other systems.
895 Amount of physical memory in bytes.
896 - Under Windows, populated with the contents of the MEMORYSTATUSEX's structure
898 - Under macOS, populated with sysctl "hw.memsize".
899 - Under Linux, populated with /proc/meminfo's "MemTotal".
900 - Not available on other systems.
906 Size of the virtual address space.
907 - Under Windows, populated with the contents of the MEMORYSTATUSEX's structure
908 ullTotalVirtual field.
909 - Not available on other platforms.
913 UnknownNetAddrSocketFamily:
915 An unknown network address family was requested to Necko. The value is the
916 requested family number.
921 Uptime in seconds. This annotation uses a string instead of an integer
922 because it has a fractional component.
933 The offsets of the nsStandardURL segments that fail a sanity check
936 User32BeforeBlocklist:
938 Set to 1 if user32.dll was loaded before we could install the DLL blocklist.
947 UtilityProcessStatus:
949 Status of the Utility process, can be set to "Running" or "Destroyed"
954 Comma-separated list of IPC actors name running on this Utility process instance
960 Application vendor (e.g. Mozilla).
970 Status of the VR process, can be set to "Running" or "Destroyed"
973 WasmLibrarySandboxMallocFailed:
975 Set to 1 if a rlbox wasm library sandbox ran out of memory, causing a
976 malloc inside the sandbox to fail.
979 WindowsFileDialogErrorCode:
981 The HRESULT returned from a Win32 system call leading to termination of the
982 file-dialog utility process. MozCrashReason is expected to provide context
987 WindowsPackageFamilyName:
989 If running in a Windows package context, the package family name, per
990 https://docs.microsoft.com/en-us/windows/win32/api/appmodel/nf-appmodel-getcurrentpackagefamilyname.
992 The package family name is only included when it is likely to have been produced by Mozilla: it
993 starts "Mozilla." or "MozillaCorporation.".
997 WindowsErrorReporting:
999 Set to 1 if this crash was intercepted via the Windows Error Reporting
1000 runtime exception module.
1006 Information on winsock LSPs injected in our networking stack.
1009 XPCOMSpinEventLoopStack:
1011 If we crash while some code is spinning manually the event loop on the
1012 main thread, we will see the stack of nested annotations here.
1013 If the crashing process was killed (e.g. due to an IPC error), this
1014 annotation may refer to the parent process that killed it, look out for
1015 the prefix ("default" means parent) and see bug 1741131 for details.