9#ifndef LLDB_TARGET_UNIXSIGNALS_H
10#define LLDB_TARGET_UNIXSIGNALS_H
19#include "llvm/Support/JSON.h"
36 std::optional<int32_t> code = std::nullopt,
37 std::optional<lldb::addr_t> addr = std::nullopt,
38 std::optional<lldb::addr_t> lower = std::nullopt,
39 std::optional<lldb::addr_t> upper = std::nullopt)
const;
45 const char *
GetSignalInfo(int32_t signo,
bool &should_suppress,
46 bool &should_stop,
bool &should_notify)
const;
65 bool ResetSignal(int32_t signo,
bool reset_stop =
true,
66 bool reset_notify =
true,
bool reset_suppress =
true);
87 void AddSignal(
int signo,
const char *name,
bool default_suppress,
88 bool default_stop,
bool default_notify,
89 const char *description,
const char *alias =
nullptr);
94 int signo,
int code,
const char *description,
120 std::optional<bool> should_stop,
121 std::optional<bool> should_notify);
140 Signal(
const char *name,
bool default_suppress,
bool default_stop,
141 bool default_notify,
const char *description,
const char *alias);
144 void Reset(
bool reset_stop,
bool reset_notify,
bool reset_suppress);
147 virtual void Reset();
A uniqued constant string class.
int32_t GetSignalNumberFromName(const char *name) const
static lldb::UnixSignalsSP CreateForHost()
void AddSignalCode(int signo, int code, const char *description, SignalCodePrintOption print_option=SignalCodePrintOption::None)
const char * GetSignalInfo(int32_t signo, bool &should_suppress, bool &should_stop, bool &should_notify) const
ConstString GetShortName(ConstString name) const
int32_t GetSignalAtIndex(int32_t index) const
bool GetShouldNotify(int32_t signo) const
std::vector< int32_t > GetFilteredSignals(std::optional< bool > should_suppress, std::optional< bool > should_stop, std::optional< bool > should_notify)
void IncrementSignalHitCount(int signo)
Track how many times signals are hit as stop reasons.
bool SetShouldStop(int32_t signo, bool value)
void RemoveSignal(int signo)
bool SetShouldSuppress(int32_t signo, bool value)
int32_t GetFirstSignalNumber() const
int32_t GetNumSignals() const
bool ResetSignal(int32_t signo, bool reset_stop=true, bool reset_notify=true, bool reset_suppress=true)
bool SignalIsValid(int32_t signo) const
const UnixSignals & operator=(const UnixSignals &rhs)=delete
llvm::json::Value GetHitCountStatistics() const
Get the hit count statistics for signals.
std::map< int32_t, Signal > collection
void AddSignal(int signo, const char *name, bool default_suppress, bool default_stop, bool default_notify, const char *description, const char *alias=nullptr)
int32_t GetNextSignalNumber(int32_t current_signal) const
bool SetShouldNotify(int32_t signo, bool value)
const char * GetSignalAsCString(int32_t signo) const
bool GetShouldSuppress(int32_t signo) const
bool GetShouldStop(int32_t signo) const
std::string GetSignalDescription(int32_t signo, std::optional< int32_t > code=std::nullopt, std::optional< lldb::addr_t > addr=std::nullopt, std::optional< lldb::addr_t > lower=std::nullopt, std::optional< lldb::addr_t > upper=std::nullopt) const
uint64_t GetVersion() const
A class that represents a running process on the host machine.
SignalCodePrintOption m_print_option
ConstString m_description
std::map< int32_t, SignalCode > m_codes
std::string m_description