From d2d245942eccf108ac3c97b82a7dda59a509372c Mon Sep 17 00:00:00 2001 From: Joshua Root Date: Tue, 10 Feb 2026 19:29:55 +1100 Subject: [PATCH] gh-144648: Improve libproc usage in _remote_debugging (#144649) --- .../macOS/2026-02-10-08-00-17.gh-issue-144648.KEuUXp.rst | 1 + Modules/_remote_debugging/subprocess.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/macOS/2026-02-10-08-00-17.gh-issue-144648.KEuUXp.rst 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 index 000000000000..5f8ba046f357 --- /dev/null +++ b/Misc/NEWS.d/next/macOS/2026-02-10-08-00-17.gh-issue-144648.KEuUXp.rst @@ -0,0 +1 @@ +Allowed _remote_debugging to build on more OS versions by using proc_listpids() rather than proc_listallpids(). diff --git a/Modules/_remote_debugging/subprocess.c b/Modules/_remote_debugging/subprocess.c index 2056217664a9..1b16dd8343f2 100644 --- a/Modules/_remote_debugging/subprocess.c +++ b/Modules/_remote_debugging/subprocess.c @@ -273,6 +273,7 @@ done: #if defined(__APPLE__) && TARGET_OS_OSX +#include #include 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; -- 2.47.3