]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-144648: Improve libproc usage in _remote_debugging (#144649)
authorJoshua Root <jmr@macports.org>
Tue, 10 Feb 2026 08:29:55 +0000 (19:29 +1100)
committerGitHub <noreply@github.com>
Tue, 10 Feb 2026 08:29:55 +0000 (08:29 +0000)
Misc/NEWS.d/next/macOS/2026-02-10-08-00-17.gh-issue-144648.KEuUXp.rst [new file with mode: 0644]
Modules/_remote_debugging/subprocess.c

diff --git a/Misc/NEWS.d/next/macOS/2026-02-10-08-00-17.gh-issue-144648.KEuUXp.rst b/Misc/NEWS.d/next/macOS/2026-02-10-08-00-17.gh-issue-144648.KEuUXp.rst
new file mode 100644 (file)
index 0000000..5f8ba04
--- /dev/null
@@ -0,0 +1 @@
+Allowed _remote_debugging to build on more OS versions by using proc_listpids() rather than proc_listallpids().
index 2056217664a9eef04bc5a096f03b5104ccfac8c1..1b16dd8343f2a5ba435f1126accb352e723904bf 100644 (file)
@@ -273,6 +273,7 @@ done:
 
 #if defined(__APPLE__) && TARGET_OS_OSX
 
+#include <libproc.h>
 #include <sys/proc_info.h>
 
 static int
@@ -283,7 +284,7 @@ get_child_pids_platform(pid_t target_pid, int recursive, pid_array_t *result)
     pid_t *ppids = NULL;
 
     /* Get count of all PIDs */
-    int n_pids = proc_listallpids(NULL, 0);
+    int n_pids = proc_listpids(PROC_ALL_PIDS, 0, NULL, 0);
     if (n_pids <= 0) {
         PyErr_SetString(PyExc_OSError, "Failed to get process count");
         goto done;
@@ -298,7 +299,7 @@ get_child_pids_platform(pid_t target_pid, int recursive, pid_array_t *result)
     }
 
     /* Get actual PIDs */
-    int actual = proc_listallpids(pid_list, buffer_size * sizeof(pid_t));
+    int actual = proc_listpids(PROC_ALL_PIDS, 0, pid_list, buffer_size * sizeof(pid_t));
     if (actual <= 0) {
         PyErr_SetString(PyExc_OSError, "Failed to list PIDs");
         goto done;