docs » hs.crash

Various features/facilities for developers who are working on Hammerspoon itself, or writing extensions for it. It is extremely unlikely that you should need any part of this extension, in a normal user configuration.

API Overview

API Documentation

Functions

attemptMemoryRelease
Signature hs.crash.attemptMemoryRelease()
Type Function
Description

Attempts to reduce RAM usage of Hammerspoon

Parameters:

  • None

Returns:

  • None

Notes:

  • This function will print some memory usage numbers (in bytes) to the Hammerspoon Console before and after forcing Lua's garbage collector
crash
Signature hs.crash.crash()
Type Function
Description

Causes Hammerspoon to immediately crash

Parameters:

  • None

Returns:

  • None

Notes:

  • This is for testing purposes only, you are extremely unlikely to need this in normal Hammerspoon usage
crashKV
Signature hs.crash.crashKV(key, value)
Type Function
Description

Sets a key/value pair in any Crashlytics crash dump generated by this Hamerspoon session

Parameters:

  • key - A string containing the key name of the pair
  • value - A string containing the value of the pair

Returns:

  • None
crashLog
Signature hs.crash.crashLog(logMessage)
Type Function
Description

Leaves a breadcrumb log message in any Crashlytics crash dump generated by this Hammerspoon session

Parameters:

  • logMessage - A string containing a message to log

Returns:

  • None

Notes:

  • This is probably only useful to extension developers. If you are trying to track down a confusing crash, and you have access to the Crashlytics project for Hammerspoon (or access to someone who has access!), this can be a useful way to leave breadcrumbs from Lua in the crash dump
dumpCLIBS
Signature hs.crash.dumpCLIBS() -> table
Type Function
Description

Dumps the contents of Lua's CLIBS registry

Parameters:

  • None

Returns:

  • A table containing all the paths of C libraries that have been loaded into the Lua runtime

Notes:

  • This is probably only useful to extension developers as a useful way of ensuring that you are loading C libraries from the places you expect.
residentSize
Signature hs.crash.residentSize() -> integer or nil
Type Function
Description

Gets the resident size of the Hammerspoon process

Parameters:

  • None

Returns:

  • An integer containing the amount of RAM in use by Hammerspoon (in bytes), or nil if an error occurred
throwObjCException
Signature hs.crash.throwObjCException(name, message)
Type Function
Description

Causes Hammerspoon to generate an Objective C exception

Parameters:

  • name - A string containing the name of the exception
  • message - A human readabke string explaining the exception

Returns:

  • None

Notes:

  • Outside of a context of a Lua pcall() (or a C lua_pcall()), this will cause Hammerspoon to exit. We follow the safe behaviour of terminating the app on any unhandled Objective C exception.