https://github.com/DhruvSrivastavaX updated https://github.com/llvm/llvm-project/pull/169454
>From e142b765cc8a847016cb0cc15f161e94e0fd236a Mon Sep 17 00:00:00 2001 From: DhruvSrivastavaX <[email protected]> Date: Mon, 24 Nov 2025 22:44:35 -0600 Subject: [PATCH 1/3] Added Kill() implementation --- .../Plugins/Process/AIX/NativeProcessAIX.cpp | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp b/lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp index cd5e3458e60e8..7f3dbbff18ea2 100644 --- a/lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp +++ b/lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp @@ -137,6 +137,12 @@ void NativeProcessAIX::Manager::SigchldHandler() { auto wait_result = WaitPid(); if (!wait_result) return; + lldb::pid_t pid = wait_result->first; + WaitStatus status = wait_result->second; + + llvm::any_of(m_processes, [&](NativeProcessAIX *process) { + return process->TryHandleWaitStatus(pid, status); + }); } } @@ -187,7 +193,41 @@ Status NativeProcessAIX::Signal(int signo) { return Status("unsupported"); } Status NativeProcessAIX::Interrupt() { return Status("unsupported"); } -Status NativeProcessAIX::Kill() { return Status("unsupported"); } +Status NativeProcessAIX::Kill() { + + Log *log = GetLog(POSIXLog::Process); + LLDB_LOG(log, "pid {0}", GetID()); + + Status error; + + switch (m_state) { + case StateType::eStateInvalid: + case StateType::eStateExited: + case StateType::eStateCrashed: + case StateType::eStateDetached: + case StateType::eStateUnloaded: + // Nothing to do - the process is already dead. + LLDB_LOG(log, "ignored for PID {0} due to current state: {1}", GetID(), + m_state); + return error; + + case StateType::eStateConnected: + case StateType::eStateAttaching: + case StateType::eStateLaunching: + case StateType::eStateStopped: + case StateType::eStateRunning: + case StateType::eStateStepping: + case StateType::eStateSuspended: + // We can try to kill a process in these states. + break; + } + + llvm::Error result = + (PtraceWrapper(PT_KILL, GetID(), nullptr, nullptr, 0)).takeError(); + if (!result) + error.FromErrorString("Kill failed"); + return error; +} Status NativeProcessAIX::ReadMemory(lldb::addr_t addr, void *buf, size_t size, size_t &bytes_read) { @@ -237,6 +277,7 @@ llvm::Expected<int> NativeProcessAIX::PtraceWrapper(int req, lldb::pid_t pid, switch (req) { case PT_ATTACH: case PT_DETACH: + case PT_KILL: ret = ptrace64(req, pid, 0, 0, nullptr); break; default: >From ebdc6f3f71b42d920fd1148d0349382121baed62 Mon Sep 17 00:00:00 2001 From: DhruvSrivastavaX <[email protected]> Date: Fri, 19 Dec 2025 07:21:15 -0600 Subject: [PATCH 2/3] Addressed comment --- lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp b/lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp index 7f3dbbff18ea2..bf0e71d9d89ea 100644 --- a/lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp +++ b/lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp @@ -222,10 +222,13 @@ Status NativeProcessAIX::Kill() { break; } - llvm::Error result = - (PtraceWrapper(PT_KILL, GetID(), nullptr, nullptr, 0)).takeError(); - if (!result) - error.FromErrorString("Kill failed"); + llvm::Expected<int> result = + PtraceWrapper(PT_KILL, GetID(), nullptr, nullptr, 0); + if (!result) { + std::string error_string = std::string("Kill failed for process. error: ") + + llvm::toString(result.takeError()); + error.FromErrorString(error_string.c_str()); + } return error; } >From 676ea37101246ca8cbbb58c57cc5118a7e6a0b46 Mon Sep 17 00:00:00 2001 From: Dhruv Srivastava <[email protected]> Date: Fri, 19 Dec 2025 21:23:22 +0530 Subject: [PATCH 3/3] removed stray code --- lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp b/lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp index bf0e71d9d89ea..6e3b9438b0075 100644 --- a/lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp +++ b/lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp @@ -137,12 +137,6 @@ void NativeProcessAIX::Manager::SigchldHandler() { auto wait_result = WaitPid(); if (!wait_result) return; - lldb::pid_t pid = wait_result->first; - WaitStatus status = wait_result->second; - - llvm::any_of(m_processes, [&](NativeProcessAIX *process) { - return process->TryHandleWaitStatus(pid, status); - }); } } _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
