aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Target/UnixSignals.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2023-12-09 13:28:42 +0000
committerDimitry Andric <dim@FreeBSD.org>2023-12-09 13:28:42 +0000
commitb1c73532ee8997fe5dfbeb7d223027bdf99758a0 (patch)
tree7d6e51c294ab6719475d660217aa0c0ad0526292 /lldb/source/Target/UnixSignals.cpp
parent7fa27ce4a07f19b07799a767fc29416f3b625afb (diff)
Diffstat (limited to 'lldb/source/Target/UnixSignals.cpp')
-rw-r--r--lldb/source/Target/UnixSignals.cpp70
1 files changed, 31 insertions, 39 deletions
diff --git a/lldb/source/Target/UnixSignals.cpp b/lldb/source/Target/UnixSignals.cpp
index 0e738241b1c5..e3c7a83ece07 100644
--- a/lldb/source/Target/UnixSignals.cpp
+++ b/lldb/source/Target/UnixSignals.cpp
@@ -18,17 +18,13 @@
using namespace lldb_private;
using namespace llvm;
-UnixSignals::Signal::Signal(const char *name, bool default_suppress,
+UnixSignals::Signal::Signal(llvm::StringRef name, bool default_suppress,
bool default_stop, bool default_notify,
- const char *description, const char *alias)
- : m_name(name), m_alias(alias), m_description(),
+ llvm::StringRef description, llvm::StringRef alias)
+ : m_name(name), m_alias(alias), m_description(description),
m_suppress(default_suppress), m_stop(default_stop),
- m_notify(default_notify),
- m_default_suppress(default_suppress), m_default_stop(default_stop),
- m_default_notify(default_notify) {
- if (description)
- m_description.assign(description);
-}
+ m_notify(default_notify), m_default_suppress(default_suppress),
+ m_default_stop(default_stop), m_default_notify(default_notify) {}
lldb::UnixSignalsSP UnixSignals::Create(const ArchSpec &arch) {
const auto &triple = arch.GetTriple();
@@ -104,9 +100,10 @@ void UnixSignals::Reset() {
// clang-format on
}
-void UnixSignals::AddSignal(int signo, const char *name, bool default_suppress,
- bool default_stop, bool default_notify,
- const char *description, const char *alias) {
+void UnixSignals::AddSignal(int signo, llvm::StringRef name,
+ bool default_suppress, bool default_stop,
+ bool default_notify, llvm::StringRef description,
+ llvm::StringRef alias) {
Signal new_signal(name, default_suppress, default_stop, default_notify,
description, alias);
m_signals.insert(std::make_pair(signo, new_signal));
@@ -131,12 +128,11 @@ void UnixSignals::RemoveSignal(int signo) {
++m_version;
}
-const char *UnixSignals::GetSignalAsCString(int signo) const {
- collection::const_iterator pos = m_signals.find(signo);
+llvm::StringRef UnixSignals::GetSignalAsStringRef(int32_t signo) const {
+ const auto pos = m_signals.find(signo);
if (pos == m_signals.end())
- return nullptr;
- else
- return pos->second.m_name.GetCString();
+ return {};
+ return pos->second.m_name;
}
std::string
@@ -148,7 +144,7 @@ UnixSignals::GetSignalDescription(int32_t signo, std::optional<int32_t> code,
collection::const_iterator pos = m_signals.find(signo);
if (pos != m_signals.end()) {
- str = pos->second.m_name.GetCString();
+ str = pos->second.m_name.str();
if (code) {
std::map<int32_t, SignalCode>::const_iterator cpos =
@@ -200,14 +196,13 @@ llvm::StringRef UnixSignals::GetShortName(llvm::StringRef name) const {
}
int32_t UnixSignals::GetSignalNumberFromName(const char *name) const {
- ConstString const_name(name);
+ llvm::StringRef name_ref(name);
collection::const_iterator pos, end = m_signals.end();
for (pos = m_signals.begin(); pos != end; pos++) {
- if ((const_name == pos->second.m_name) ||
- (const_name == pos->second.m_alias) ||
- (const_name == GetShortName(pos->second.m_name)) ||
- (const_name == GetShortName(pos->second.m_alias)))
+ if ((name_ref == pos->second.m_name) || (name_ref == pos->second.m_alias) ||
+ (name_ref == GetShortName(pos->second.m_name)) ||
+ (name_ref == GetShortName(pos->second.m_alias)))
return pos->first;
}
@@ -238,19 +233,17 @@ int32_t UnixSignals::GetNextSignalNumber(int32_t current_signal) const {
}
}
-const char *UnixSignals::GetSignalInfo(int32_t signo, bool &should_suppress,
- bool &should_stop,
- bool &should_notify) const {
- collection::const_iterator pos = m_signals.find(signo);
+bool UnixSignals::GetSignalInfo(int32_t signo, bool &should_suppress,
+ bool &should_stop, bool &should_notify) const {
+ const auto pos = m_signals.find(signo);
if (pos == m_signals.end())
- return nullptr;
- else {
- const Signal &signal = pos->second;
- should_suppress = signal.m_suppress;
- should_stop = signal.m_stop;
- should_notify = signal.m_notify;
- return signal.m_name.AsCString("");
- }
+ return false;
+
+ const Signal &signal = pos->second;
+ should_suppress = signal.m_suppress;
+ should_stop = signal.m_stop;
+ should_notify = signal.m_notify;
+ return true;
}
bool UnixSignals::GetShouldSuppress(int signo) const {
@@ -376,11 +369,10 @@ void UnixSignals::IncrementSignalHitCount(int signo) {
json::Value UnixSignals::GetHitCountStatistics() const {
json::Array json_signals;
- for (const auto &pair: m_signals) {
+ for (const auto &pair : m_signals) {
if (pair.second.m_hit_count > 0)
- json_signals.emplace_back(json::Object{
- { pair.second.m_name.GetCString(), pair.second.m_hit_count }
- });
+ json_signals.emplace_back(
+ json::Object{{pair.second.m_name, pair.second.m_hit_count}});
}
return std::move(json_signals);
}