[Lldb-commits] [lldb] b96bae2 - [lldb] Fix building on NetBSD 8.x (#74191)
via lldb-commits
lldb-commits at lists.llvm.org
Mon Dec 4 00:02:17 PST 2023
Author: Brad Smith
Date: 2023-12-04T03:02:13-05:00
New Revision: b96bae2887f276345f9c0ea9974703e8dd3b5ddf
URL: https://github.com/llvm/llvm-project/commit/b96bae2887f276345f9c0ea9974703e8dd3b5ddf
DIFF: https://github.com/llvm/llvm-project/commit/b96bae2887f276345f9c0ea9974703e8dd3b5ddf.diff
LOG: [lldb] Fix building on NetBSD 8.x (#74191)
PT_STOP was introduced with NetBSD 9.0.
Added:
Modified:
lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h
Removed:
################################################################################
diff --git a/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp b/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
index 26c562bd47905..451bb48660371 100644
--- a/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
+++ b/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
@@ -379,6 +379,29 @@ void NativeProcessNetBSD::MonitorSignal(lldb::pid_t pid, int signal) {
SetState(StateType::eStateStopped, true);
}
+Status NativeProcessNetBSD::StopProcess(lldb::pid_t pid) {
+#ifdef PT_STOP
+ return PtraceWrapper(PT_STOP, pid);
+#else
+ Log *log = GetLog(POSIXLog::Ptrace);
+ Status error;
+ int ret;
+
+ errno = 0;
+ ret = kill(pid, SIGSTOP);
+
+ if (ret == -1)
+ error.SetErrorToErrno();
+
+ LLDB_LOG(log, "kill({0}, SIGSTOP)", pid);
+
+ if (error.Fail())
+ LLDB_LOG(log, "kill() failed: {0}", error);
+
+ return error;
+#endif
+}
+
Status NativeProcessNetBSD::PtraceWrapper(int req, lldb::pid_t pid, void *addr,
int data, int *result) {
Log *log = GetLog(POSIXLog::Ptrace);
@@ -531,7 +554,7 @@ Status NativeProcessNetBSD::Resume(const ResumeActionList &resume_actions) {
return ret;
}
-Status NativeProcessNetBSD::Halt() { return PtraceWrapper(PT_STOP, GetID()); }
+Status NativeProcessNetBSD::Halt() { return StopProcess(GetID()); }
Status NativeProcessNetBSD::Detach() {
Status error;
@@ -555,9 +578,7 @@ Status NativeProcessNetBSD::Signal(int signo) {
return error;
}
-Status NativeProcessNetBSD::Interrupt() {
- return PtraceWrapper(PT_STOP, GetID());
-}
+Status NativeProcessNetBSD::Interrupt() { return StopProcess(GetID()); }
Status NativeProcessNetBSD::Kill() {
Log *log = GetLog(POSIXLog::Process);
diff --git a/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h b/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h
index 86724fdd5b7e5..f3d07651384fe 100644
--- a/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h
+++ b/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h
@@ -88,6 +88,7 @@ class NativeProcessNetBSD : public NativeProcessELF {
// Interface used by NativeRegisterContext-derived classes.
static Status PtraceWrapper(int req, lldb::pid_t pid, void *addr = nullptr,
int data = 0, int *result = nullptr);
+ static Status StopProcess(lldb::pid_t pid);
llvm::Expected<std::string> SaveCore(llvm::StringRef path_hint) override;
More information about the lldb-commits
mailing list