Skip to content

Commit 1639f6a

Browse files
committed
[lldb] show the description in process handle
when the user types `process handle` show that the signal is used for.
1 parent 65c895d commit 1639f6a

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

lldb/include/lldb/Target/UnixSignals.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ class UnixSignals {
3131

3232
llvm::StringRef GetSignalAsStringRef(int32_t signo) const;
3333

34+
llvm::StringRef GetSignalNoDescription(int32_t signo) const;
35+
3436
std::string
3537
GetSignalDescription(int32_t signo,
3638
std::optional<int32_t> code = std::nullopt,

lldb/source/Commands/CommandObjectProcess.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1603,8 +1603,8 @@ class CommandObjectProcessHandle : public CommandObjectParsed {
16031603
Options *GetOptions() override { return &m_options; }
16041604

16051605
void PrintSignalHeader(Stream &str) {
1606-
str.Printf("NAME PASS STOP NOTIFY\n");
1607-
str.Printf("=========== ===== ===== ======\n");
1606+
str.Printf("NAME PASS STOP NOTIFY DESCRIPTION\n");
1607+
str.Printf("=========== ===== ===== ====== ===================\n");
16081608
}
16091609

16101610
void PrintSignal(Stream &str, int32_t signo, llvm::StringRef sig_name,
@@ -1616,8 +1616,15 @@ class CommandObjectProcessHandle : public CommandObjectParsed {
16161616
str.Format("{0, -11} ", sig_name);
16171617
if (signals_sp->GetSignalInfo(signo, suppress, stop, notify)) {
16181618
bool pass = !suppress;
1619-
str.Printf("%s %s %s", (pass ? "true " : "false"),
1619+
str.Printf("%s %s %s ", (pass ? "true " : "false"),
16201620
(stop ? "true " : "false"), (notify ? "true " : "false"));
1621+
1622+
llvm::StringRef sig_description =
1623+
signals_sp->GetSignalNoDescription(signo);
1624+
if (!sig_description.empty()) {
1625+
str.PutCString(" ");
1626+
str.PutCString(sig_description);
1627+
}
16211628
}
16221629
str.Printf("\n");
16231630
}

lldb/source/Target/UnixSignals.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,13 @@ llvm::StringRef UnixSignals::GetSignalAsStringRef(int32_t signo) const {
137137
return pos->second.m_name;
138138
}
139139

140+
llvm::StringRef UnixSignals::GetSignalNoDescription(int32_t signo) const {
141+
const auto pos = m_signals.find(signo);
142+
if (pos == m_signals.end())
143+
return {};
144+
return pos->second.m_description;
145+
}
146+
140147
std::string UnixSignals::GetSignalDescription(
141148
int32_t signo, std::optional<int32_t> code,
142149
std::optional<lldb::addr_t> addr, std::optional<lldb::addr_t> lower,

0 commit comments

Comments
 (0)