https://github.com/DhruvSrivastavaX updated 
https://github.com/llvm/llvm-project/pull/130582

>From 21fe9850c99b3eae4be65ac34c1f4f9c2d06ab2c Mon Sep 17 00:00:00 2001
From: Dhruv-Srivastava <dhruv.srivast...@ibm.com>
Date: Mon, 10 Mar 2025 05:39:52 -0500
Subject: [PATCH 1/5] Host.cpp base for AIX

---
 lldb/source/Host/CMakeLists.txt |   1 +
 lldb/source/Host/aix/Host.cpp   | 126 ++++++++++++++++++++++++++++++++
 2 files changed, 127 insertions(+)
 create mode 100644 lldb/source/Host/aix/Host.cpp

diff --git a/lldb/source/Host/CMakeLists.txt b/lldb/source/Host/CMakeLists.txt
index 9be0c06a516ba..52ef67feeb6ab 100644
--- a/lldb/source/Host/CMakeLists.txt
+++ b/lldb/source/Host/CMakeLists.txt
@@ -135,6 +135,7 @@ else()
 
   elseif (CMAKE_SYSTEM_NAME MATCHES "AIX")
     add_host_subdirectory(aix
+      aix/Host.cpp
       aix/HostInfoAIX.cpp
       )
   endif()
diff --git a/lldb/source/Host/aix/Host.cpp b/lldb/source/Host/aix/Host.cpp
new file mode 100644
index 0000000000000..a410899dc2a50
--- /dev/null
+++ b/lldb/source/Host/aix/Host.cpp
@@ -0,0 +1,126 @@
+//===-- source/Host/aix/Host.cpp ----------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM 
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "lldb/Host/Host.h"
+#include "lldb/Host/FileSystem.h"
+#include "lldb/Host/HostInfo.h"
+#include "lldb/Utility/LLDBLog.h"
+#include "lldb/Utility/Log.h"
+#include "lldb/Utility/ProcessInfo.h"
+#include "lldb/Utility/Status.h"
+#include "llvm/ADT/StringSwitch.h"
+#include "llvm/Object/ELF.h"
+#include "llvm/Support/ScopedPrinter.h"
+#include <cerrno>
+#include <cstdio>
+#include <cstring>
+#include <dirent.h>
+#include <fcntl.h>
+#include <sstream>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/utsname.h>
+#include <unistd.h>
+
+using namespace llvm;
+using namespace lldb;
+using namespace lldb_private;
+
+namespace {
+enum class ProcessState {
+  Unknown,
+  Dead,
+  DiskSleep,
+  Idle,
+  Paging,
+  Parked,
+  Running,
+  Sleeping,
+  TracedOrStopped,
+  Zombie,
+};
+}
+
+namespace lldb_private {
+class ProcessLaunchInfo;
+}
+
+static bool GetStatusInfo(::pid_t Pid, ProcessInstanceInfo &ProcessInfo,
+                          ProcessState &State, ::pid_t &TracerPid,
+                          ::pid_t &Tgid) {
+  return false;
+}
+
+static void GetProcessArgs(::pid_t pid, ProcessInstanceInfo &process_info) {}
+
+static bool GetProcessAndStatInfo(::pid_t pid,
+                                  ProcessInstanceInfo &process_info,
+                                  ProcessState &State, ::pid_t &tracerpid) {
+  return false;
+}
+
+uint32_t Host::FindProcessesImpl(const ProcessInstanceInfoMatch &match_info,
+                                 ProcessInstanceInfoList &process_infos) {
+  static const char procdir[] = "/proc/";
+
+  DIR *dirproc = opendir(procdir);
+  if (dirproc) {
+    struct dirent *direntry = nullptr;
+    const uid_t our_uid = getuid();
+    const lldb::pid_t our_pid = getpid();
+    bool all_users = match_info.GetMatchAllUsers();
+
+    while ((direntry = readdir(dirproc)) != nullptr) {
+
+      lldb::pid_t pid = atoi(direntry->d_name);
+
+      // Skip this process.
+      if (pid == our_pid)
+        continue;
+
+      ::pid_t tracerpid;
+      ProcessState State;
+      ProcessInstanceInfo process_info;
+
+      if (!GetProcessAndStatInfo(pid, process_info, State, tracerpid))
+        continue;
+
+      // Skip if process is being debugged.
+      if (tracerpid != 0)
+        continue;
+
+      if (State == ProcessState::Zombie)
+        continue;
+
+      // Check for user match if we're not matching all users and not running
+      // as root.
+      if (!all_users && (our_uid != 0) && (process_info.GetUserID() != 
our_uid))
+        continue;
+
+      if (match_info.Matches(process_info)) {
+        process_infos.push_back(process_info);
+      }
+    }
+
+    closedir(dirproc);
+  }
+
+  return process_infos.size();
+}
+
+bool Host::GetProcessInfo(lldb::pid_t pid, ProcessInstanceInfo &process_info) {
+  ::pid_t tracerpid;
+  ProcessState State;
+  return GetProcessAndStatInfo(pid, process_info, State, tracerpid);
+}
+
+Environment Host::GetEnvironment() { return Environment(environ); }
+
+Status Host::ShellExpandArguments(ProcessLaunchInfo &launch_info) {
+  return Status("unimplemented");
+}

>From 4a9ff1d56b0210e4f2130394a81dfdd414457475 Mon Sep 17 00:00:00 2001
From: Dhruv-Srivastava <dhruv.srivast...@ibm.com>
Date: Mon, 10 Mar 2025 06:02:02 -0500
Subject: [PATCH 2/5] cleanup

---
 lldb/source/Host/aix/Host.cpp | 19 +------------------
 1 file changed, 1 insertion(+), 18 deletions(-)

diff --git a/lldb/source/Host/aix/Host.cpp b/lldb/source/Host/aix/Host.cpp
index a410899dc2a50..38c77b4959ead 100644
--- a/lldb/source/Host/aix/Host.cpp
+++ b/lldb/source/Host/aix/Host.cpp
@@ -7,25 +7,9 @@
 
//===----------------------------------------------------------------------===//
 
 #include "lldb/Host/Host.h"
-#include "lldb/Host/FileSystem.h"
-#include "lldb/Host/HostInfo.h"
-#include "lldb/Utility/LLDBLog.h"
-#include "lldb/Utility/Log.h"
 #include "lldb/Utility/ProcessInfo.h"
 #include "lldb/Utility/Status.h"
-#include "llvm/ADT/StringSwitch.h"
-#include "llvm/Object/ELF.h"
-#include "llvm/Support/ScopedPrinter.h"
-#include <cerrno>
-#include <cstdio>
-#include <cstring>
 #include <dirent.h>
-#include <fcntl.h>
-#include <sstream>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/utsname.h>
-#include <unistd.h>
 
 using namespace llvm;
 using namespace lldb;
@@ -102,9 +86,8 @@ uint32_t Host::FindProcessesImpl(const 
ProcessInstanceInfoMatch &match_info,
       if (!all_users && (our_uid != 0) && (process_info.GetUserID() != 
our_uid))
         continue;
 
-      if (match_info.Matches(process_info)) {
+      if (match_info.Matches(process_info))
         process_infos.push_back(process_info);
-      }
     }
 
     closedir(dirproc);

>From b6daa272fc829ae94830ccd4d4a941314cf659a8 Mon Sep 17 00:00:00 2001
From: Dhruv-Srivastava <dhruv.srivast...@ibm.com>
Date: Mon, 10 Mar 2025 08:23:05 -0500
Subject: [PATCH 3/5] Addressed comments

---
 lldb/source/Host/aix/Host.cpp | 45 +----------------------------------
 1 file changed, 1 insertion(+), 44 deletions(-)

diff --git a/lldb/source/Host/aix/Host.cpp b/lldb/source/Host/aix/Host.cpp
index 38c77b4959ead..e98e916a9124a 100644
--- a/lldb/source/Host/aix/Host.cpp
+++ b/lldb/source/Host/aix/Host.cpp
@@ -50,50 +50,7 @@ static bool GetProcessAndStatInfo(::pid_t pid,
 
 uint32_t Host::FindProcessesImpl(const ProcessInstanceInfoMatch &match_info,
                                  ProcessInstanceInfoList &process_infos) {
-  static const char procdir[] = "/proc/";
-
-  DIR *dirproc = opendir(procdir);
-  if (dirproc) {
-    struct dirent *direntry = nullptr;
-    const uid_t our_uid = getuid();
-    const lldb::pid_t our_pid = getpid();
-    bool all_users = match_info.GetMatchAllUsers();
-
-    while ((direntry = readdir(dirproc)) != nullptr) {
-
-      lldb::pid_t pid = atoi(direntry->d_name);
-
-      // Skip this process.
-      if (pid == our_pid)
-        continue;
-
-      ::pid_t tracerpid;
-      ProcessState State;
-      ProcessInstanceInfo process_info;
-
-      if (!GetProcessAndStatInfo(pid, process_info, State, tracerpid))
-        continue;
-
-      // Skip if process is being debugged.
-      if (tracerpid != 0)
-        continue;
-
-      if (State == ProcessState::Zombie)
-        continue;
-
-      // Check for user match if we're not matching all users and not running
-      // as root.
-      if (!all_users && (our_uid != 0) && (process_info.GetUserID() != 
our_uid))
-        continue;
-
-      if (match_info.Matches(process_info))
-        process_infos.push_back(process_info);
-    }
-
-    closedir(dirproc);
-  }
-
-  return process_infos.size();
+  return 0;
 }
 
 bool Host::GetProcessInfo(lldb::pid_t pid, ProcessInstanceInfo &process_info) {

>From b6d3023a2958501284ab936dc45c69740d8609e0 Mon Sep 17 00:00:00 2001
From: Dhruv-Srivastava <dhruv.srivast...@ibm.com>
Date: Mon, 10 Mar 2025 08:45:35 -0500
Subject: [PATCH 4/5] Addressed comments

---
 lldb/source/Host/aix/Host.cpp | 41 +----------------------------------
 1 file changed, 1 insertion(+), 40 deletions(-)

diff --git a/lldb/source/Host/aix/Host.cpp b/lldb/source/Host/aix/Host.cpp
index e98e916a9124a..b95de6ecffa45 100644
--- a/lldb/source/Host/aix/Host.cpp
+++ b/lldb/source/Host/aix/Host.cpp
@@ -7,60 +7,21 @@
 
//===----------------------------------------------------------------------===//
 
 #include "lldb/Host/Host.h"
-#include "lldb/Utility/ProcessInfo.h"
 #include "lldb/Utility/Status.h"
-#include <dirent.h>
 
 using namespace llvm;
 using namespace lldb;
 using namespace lldb_private;
 
-namespace {
-enum class ProcessState {
-  Unknown,
-  Dead,
-  DiskSleep,
-  Idle,
-  Paging,
-  Parked,
-  Running,
-  Sleeping,
-  TracedOrStopped,
-  Zombie,
-};
-}
-
-namespace lldb_private {
-class ProcessLaunchInfo;
-}
-
-static bool GetStatusInfo(::pid_t Pid, ProcessInstanceInfo &ProcessInfo,
-                          ProcessState &State, ::pid_t &TracerPid,
-                          ::pid_t &Tgid) {
-  return false;
-}
-
-static void GetProcessArgs(::pid_t pid, ProcessInstanceInfo &process_info) {}
-
-static bool GetProcessAndStatInfo(::pid_t pid,
-                                  ProcessInstanceInfo &process_info,
-                                  ProcessState &State, ::pid_t &tracerpid) {
-  return false;
-}
-
 uint32_t Host::FindProcessesImpl(const ProcessInstanceInfoMatch &match_info,
                                  ProcessInstanceInfoList &process_infos) {
   return 0;
 }
 
 bool Host::GetProcessInfo(lldb::pid_t pid, ProcessInstanceInfo &process_info) {
-  ::pid_t tracerpid;
-  ProcessState State;
-  return GetProcessAndStatInfo(pid, process_info, State, tracerpid);
+  return false;
 }
 
-Environment Host::GetEnvironment() { return Environment(environ); }
-
 Status Host::ShellExpandArguments(ProcessLaunchInfo &launch_info) {
   return Status("unimplemented");
 }

>From 191717be18f0838de45427aef4a1f477d3c85e89 Mon Sep 17 00:00:00 2001
From: Dhruv-Srivastava <dhruv.srivast...@ibm.com>
Date: Mon, 10 Mar 2025 11:47:51 -0500
Subject: [PATCH 5/5] Cleanup

---
 lldb/source/Host/aix/Host.cpp | 2 --
 1 file changed, 2 deletions(-)

diff --git a/lldb/source/Host/aix/Host.cpp b/lldb/source/Host/aix/Host.cpp
index b95de6ecffa45..751c4fbcc9368 100644
--- a/lldb/source/Host/aix/Host.cpp
+++ b/lldb/source/Host/aix/Host.cpp
@@ -9,8 +9,6 @@
 #include "lldb/Host/Host.h"
 #include "lldb/Utility/Status.h"
 
-using namespace llvm;
-using namespace lldb;
 using namespace lldb_private;
 
 uint32_t Host::FindProcessesImpl(const ProcessInstanceInfoMatch &match_info,

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to