On this page

crash

Native crash logging functions and constants.

Functions

crash.write_dump()

Performs the same steps as if a crash had just occured but allows the program to continue. The generated dump can be read by crash.load_previous

crash.set_file_path(path: string)

Crashes occuring before the path is set will be stored to a default engine location.

Parameters

  • path: string — file path to use

crash.load_previous(): number | nil

The crash dump will be removed from disk upon a successful load, so loading is one-shot.

Returns

  • handle: number | nil — handle to the loaded dump, or nil if no dump was found

crash.release(handle: number)

releases a previously loaded crash dump

Parameters

  • handle: number — handle to loaded crash dump

crash.set_user_field(index: number, value: string)

Store a user value that will get written to a crash dump when a crash occurs. This can be user id:s, breadcrumb data etc. There are 32 slots indexed from 0. Each slot stores at most 255 characters.

Parameters

  • index: number — slot index. 0-indexed
  • value: string — string value to store

crash.get_modules(handle: number): Record<string | number, unknown>

The function returns a table containing entries with sub-tables that have fields 'name' and 'address' set for all loaded modules.

Parameters

  • handle: number — crash dump handle

Returns

  • modules: Record<string | number, unknown> — module table

crash.get_user_field(handle: number, index: number): string

reads user field from a loaded crash dump

Parameters

  • handle: number — crash dump handle
  • index: number — user data slot index

Returns

  • value: string — user data value recorded in the crash dump

crash.get_sys_field(handle: number, index: number): string | nil

reads a system field from a loaded crash dump

Parameters

  • handle: number — crash dump handle
  • index: number — system field enum. Must be less than crash.SYSFIELD_MAX

Returns

  • value: string | nil — value recorded in the crash dump, or nil if it didn't exist

crash.get_signum(handle: number): number

read signal number from a crash report

Parameters

  • handle: number — crash dump handle

Returns

  • signal: number — signal number

crash.get_backtrace(handle: number): Record<string | number, unknown>

A table is returned containing the addresses of the call stack.

Parameters

  • handle: number — crash dump handle

Returns

  • backtrace: Record<string | number, unknown> — table containing the backtrace

crash.get_extra_data(handle: number): string

The format of read text blob is platform specific and not guaranteed but can be useful for manual inspection.

Parameters

  • handle: number — crash dump handle

Returns

  • blob: string — string with the platform specific data

Constants

crash.SYSFIELD_ENGINE_VERSION

engine version as release number

crash.SYSFIELD_ENGINE_HASH

engine version as hash

crash.SYSFIELD_DEVICE_MODEL

device model as reported by sys.get_sys_info

crash.SYSFIELD_MANUFACTURER

device manufacturer as reported by sys.get_sys_info

crash.SYSFIELD_SYSTEM_NAME

system name as reported by sys.get_sys_info

crash.SYSFIELD_SYSTEM_VERSION

system version as reported by sys.get_sys_info

crash.SYSFIELD_LANGUAGE

system language as reported by sys.get_sys_info

crash.SYSFIELD_DEVICE_LANGUAGE

system device language as reported by sys.get_sys_info

crash.SYSFIELD_TERRITORY

system territory as reported by sys.get_sys_info

crash.SYSFIELD_ANDROID_BUILD_FINGERPRINT

android build fingerprint

crash.SYSFIELD_MAX

The max number of sysfields.

crash.USERFIELD_MAX

The max number of user fields.

crash.USERFIELD_SIZE

The max size of a single user field.