LBANN  0.103.0
LivermoreBigArtificialNeuralNetworkToolkit
lbann::stack_trace Namespace Reference

Functions

std::string get ()
 
void register_signal_handler (std::string file_base="")
 

Function Documentation

◆ get()

std::string lbann::stack_trace::get ( )

Get human-readable stack trace. Ignores stack frames within the lbann::stack_trace and lbann::lbann_exception namespaces. Calls non-reentrant functions, so behaviour may be undefined if used within a signal handler.

◆ register_signal_handler()

void lbann::stack_trace::register_signal_handler ( std::string  file_base = "")

Register signal handler. Initializes a signal handler that prints an error message and stack trace to the standard error stream when a fatal signal is detected. If a file name base is provided, it also writes to the file "<file_base>_rank<MPI rank>.txt".

Fatal signals are those that cause an abnormal termination by default, according to the POSIX C standard (http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/signal.h.html).

This functionality is somewhat risky since the handler calls non-reentrant functions, which can result in undefined behavior (see https://www.ibm.com/developerworks/library/l-reent/).