pwnlib.atexception
— Callbacks on unhandled exception
Analogous to atexit, this module allows the programmer to register functions to be run if an unhandled exception occurs.
- pwnlib.atexception.register(func, *args, **kwargs)[source]
Registers a function to be called when an unhandled exception occurs. The function will be called with positional arguments args and keyword arguments kwargs, i.e.
func(*args, **kwargs)
. The current context is recorded and will be the one used when the handler is run.E.g. to suppress logging output from an exception-handler one could write:
with context.local(log_level = 'error'): atexception.register(handler)
An identifier is returned which can be used to unregister the exception-handler.
This function can be used as a decorator:
@atexception.register def handler(): ...
Notice however that this will bind
handler
to the identifier and not the actual exception-handler. The exception-handler can then be unregistered with:atexception.unregister(handler)
This function is thread safe.