5 #ifndef CVMFS_MONITOR_H_
6 #define CVMFS_MONITOR_H_
10 #include <sys/types.h>
43 void Spawn(
const std::string &crash_dump_path);
90 static void SendTrace(
int sig, siginfo_t *siginfo,
void *context);
118 #endif // CVMFS_MONITOR_H_
std::map< int, struct sigaction > SigactionMap
std::string GenerateStackTrace(pid_t pid)
std::string ReportStacktrace()
UniquePtr< Pipe< kPipeThreadTerminator > > pipe_terminate_
Send the terminate signal to the listener.
static void ReportSignalAndTerminate(int sig, siginfo_t *siginfo, void *context)
SigactionMap old_signal_handlers_
static void SendTrace(int sig, siginfo_t *siginfo, void *context)
void LogEmergency(std::string msg)
static Watchdog * instance_
static int g_crash_signals[8]
stack_t sighandler_stack_
static Watchdog * Create(FnOnCrash on_crash)
pthread_t thread_listener_
Watchdog(FnOnCrash on_crash)
std::string ReadUntilGdbPrompt(int fd_pipe)
static void * MainWatchdogListener(void *data)
SigactionMap SetSignalHandlers(const SigactionMap &signal_handlers)
static int g_suppressed_signals[13]
UniquePtr< Pipe< kPipeWatchdogSupervisor > > pipe_listener_
The supervisee makes sure its watchdog does not die.
UniquePtr< Pipe< kPipeWatchdog > > pipe_watchdog_
static const unsigned kSignalHandlerStacksize
void Spawn(const std::string &crash_dump_path)
platform_spinlock lock_handler_
std::string crash_dump_path_
static const unsigned kMaxBacktrace