From d0bbe64c5a3f9608ae5987f1267de7a734ee8151 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 22 Feb 2022 11:22:14 -0800 Subject: [PATCH] fbsd-nat: Return nullptr rather than failing ::thread_name. ptrace on FreeBSD cannot be used against running processes and instead fails with EBUSY. This meant that 'info threads' would fail if any of the threads were running (for example when using schedule-multiple=on in gdb.base/fork-running-state.exp). Instead of throwing errors, just return nullptr as no thread name is better than causing info threads to fail completely. --- gdb/fbsd-nat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c index 89c9ae6a9b7..cea3ce7d384 100644 --- a/gdb/fbsd-nat.c +++ b/gdb/fbsd-nat.c @@ -819,9 +819,9 @@ fbsd_nat_target::thread_name (struct thread_info *thr) if a name has not been set explicitly. Return a NULL name in that case. */ if (!fbsd_fetch_kinfo_proc (pid, &kp)) - perror_with_name (_("Failed to fetch process information")); + return nullptr; if (ptrace (PT_LWPINFO, lwp, (caddr_t) &pl, sizeof pl) == -1) - perror_with_name (("ptrace (PT_LWPINFO)")); + return nullptr; if (strcmp (kp.ki_comm, pl.pl_tdname) == 0) return NULL; xsnprintf (buf, sizeof buf, "%s", pl.pl_tdname); -- 2.30.2