From: Tom Tromey Date: Mon, 27 Dec 2021 04:38:34 +0000 (-0700) Subject: Reduce use of unfiltered output in Darwin code X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a42a74331c9d81be166a2f8587d17a967b8eefe0;p=binutils-gdb.git Reduce use of unfiltered output in Darwin code The Darwin code uses unfiltered output liberally. This patch changes this code to send some output to gdb_stdlog (in some cases via the use of debug_prefixed_printf_cond_nofunc), or to gdb_stderr, or to simply switch to filtered output. Note that I didn't switch inferior_debug to use debug_prefixed_printf_cond_nofunc, because that would affect the output by removing the information about the inferior. I wasn't sure if this was important or not, so I left it in. v2 of this patch uses warning rather than prints to gdb_stderr, and removes some trailing whitespace. I can't compile this patch, so it's "best effort". --- diff --git a/gdb/darwin-nat-info.c b/gdb/darwin-nat-info.c index f158960460d..8d00d6618ca 100644 --- a/gdb/darwin-nat-info.c +++ b/gdb/darwin-nat-info.c @@ -54,10 +54,10 @@ } while (0) #define PRINT_FIELD(structure, field) \ - printf_unfiltered(_(#field":\t%#lx\n"), (unsigned long) (structure)->field) + printf_filtered(_(#field":\t%#lx\n"), (unsigned long) (structure)->field) #define PRINT_TV_FIELD(structure, field) \ - printf_unfiltered(_(#field":\t%u.%06u sec\n"), \ + printf_filtered(_(#field":\t%u.%06u sec\n"), \ (unsigned) (structure)->field.seconds, \ (unsigned) (structure)->field.microseconds) @@ -83,7 +83,7 @@ info_mach_tasks_command (const char *args, int from_tty) sysctl (sysControl, 3, procInfo, &length, NULL, 0); count = (length / sizeof (struct kinfo_proc)); - printf_unfiltered (_("%d processes:\n"), count); + printf_filtered (_("%d processes:\n"), count); for (index = 0; index < count; ++index) { kern_return_t result; @@ -94,15 +94,15 @@ info_mach_tasks_command (const char *args, int from_tty) &taskPort); if (KERN_SUCCESS == result) { - printf_unfiltered (_(" %s is %d has task %#x\n"), - procInfo[index].kp_proc.p_comm, - procInfo[index].kp_proc.p_pid, taskPort); + printf_filtered (_(" %s is %d has task %#x\n"), + procInfo[index].kp_proc.p_comm, + procInfo[index].kp_proc.p_pid, taskPort); } else { - printf_unfiltered (_(" %s is %d unknown task port\n"), - procInfo[index].kp_proc.p_comm, - procInfo[index].kp_proc.p_pid); + printf_filtered (_(" %s is %d unknown task port\n"), + procInfo[index].kp_proc.p_comm, + procInfo[index].kp_proc.p_pid); } } @@ -118,7 +118,7 @@ get_task_from_args (const char *args) if (args == NULL || *args == 0) { if (inferior_ptid == null_ptid) - printf_unfiltered (_("No inferior running\n")); + printf_filtered (_("No inferior running\n")); darwin_inferior *priv = get_darwin_inferior (current_inferior ()); @@ -129,7 +129,7 @@ get_task_from_args (const char *args) task = strtoul (args, &eptr, 0); if (*eptr) { - printf_unfiltered (_("cannot parse task id '%s'\n"), args); + printf_filtered (_("cannot parse task id '%s'\n"), args); return TASK_NULL; } return task; @@ -153,7 +153,7 @@ info_mach_task_command (const char *args, int from_tty) if (task == TASK_NULL) return; - printf_unfiltered (_("TASK_BASIC_INFO for 0x%x:\n"), task); + printf_filtered (_("TASK_BASIC_INFO for 0x%x:\n"), task); info_count = TASK_BASIC_INFO_COUNT; result = task_info (task, TASK_BASIC_INFO, @@ -165,7 +165,7 @@ info_mach_task_command (const char *args, int from_tty) PRINT_FIELD (&task_info_data.basic, resident_size); PRINT_TV_FIELD (&task_info_data.basic, user_time); PRINT_TV_FIELD (&task_info_data.basic, system_time); - printf_unfiltered (_("\nTASK_EVENTS_INFO:\n")); + printf_filtered (_("\nTASK_EVENTS_INFO:\n")); info_count = TASK_EVENTS_INFO_COUNT; result = task_info (task, TASK_EVENTS_INFO, @@ -181,7 +181,7 @@ info_mach_task_command (const char *args, int from_tty) PRINT_FIELD (&task_info_data.events, cow_faults); PRINT_FIELD (&task_info_data.events, messages_sent); PRINT_FIELD (&task_info_data.events, messages_received); - printf_unfiltered (_("\nTASK_THREAD_TIMES_INFO:\n")); + printf_filtered (_("\nTASK_THREAD_TIMES_INFO:\n")); info_count = TASK_THREAD_TIMES_INFO_COUNT; result = task_info (task, TASK_THREAD_TIMES_INFO, @@ -211,8 +211,8 @@ info_mach_ports_command (const char *args, int from_tty) gdb_assert (name_count == type_count); - printf_unfiltered (_("Ports for task 0x%x:\n"), task); - printf_unfiltered (_("port type\n")); + printf_filtered (_("Ports for task 0x%x:\n"), task); + printf_filtered (_("port type\n")); for (index = 0; index < name_count; ++index) { mach_port_t port = names[index]; @@ -232,47 +232,47 @@ info_mach_ports_command (const char *args, int from_tty) {MACH_PORT_TYPE_DEAD_NAME, "dead", MACH_PORT_RIGHT_DEAD_NAME} }; - printf_unfiltered (_("%04x: %08x "), port, types[index]); + printf_filtered (_("%04x: %08x "), port, types[index]); for (j = 0; j < sizeof(descrs) / sizeof(*descrs); j++) if (types[index] & descrs[j].type) { mach_port_urefs_t ref; kern_return_t ret; - printf_unfiltered (_(" %s("), descrs[j].name); + printf_filtered (_(" %s("), descrs[j].name); ret = mach_port_get_refs (task, port, descrs[j].right, &ref); if (ret != KERN_SUCCESS) - printf_unfiltered (_("??")); + printf_filtered (_("??")); else - printf_unfiltered (_("%u"), ref); - printf_unfiltered (_(" refs)")); + printf_filtered (_("%u"), ref); + printf_filtered (_(" refs)")); } if (task == task_self ()) { if (port == task_self()) - printf_unfiltered (_(" gdb-task")); + printf_filtered (_(" gdb-task")); else if (port == darwin_host_self) - printf_unfiltered (_(" host-self")); + printf_filtered (_(" host-self")); else if (port == darwin_ex_port) - printf_unfiltered (_(" gdb-exception")); + printf_filtered (_(" gdb-exception")); else if (port == darwin_port_set) - printf_unfiltered (_(" gdb-port_set")); + printf_filtered (_(" gdb-port_set")); else if (inferior_ptid != null_ptid) { struct inferior *inf = current_inferior (); darwin_inferior *priv = get_darwin_inferior (inf); if (port == priv->task) - printf_unfiltered (_(" inferior-task")); + printf_filtered (_(" inferior-task")); else if (port == priv->notify_port) - printf_unfiltered (_(" inferior-notify")); + printf_filtered (_(" inferior-notify")); else { for (int k = 0; k < priv->exception_info.count; k++) if (port == priv->exception_info.ports[k]) { - printf_unfiltered (_(" inferior-excp-port")); + printf_filtered (_(" inferior-excp-port")); break; } @@ -280,8 +280,8 @@ info_mach_ports_command (const char *args, int from_tty) { if (port == t->gdb_port) { - printf_unfiltered (_(" inferior-thread for 0x%x"), - priv->task); + printf_filtered (_(" inferior-thread for 0x%x"), + priv->task); break; } } @@ -289,7 +289,7 @@ info_mach_ports_command (const char *args, int from_tty) } } } - printf_unfiltered (_("\n")); + printf_filtered (_("\n")); } vm_deallocate (task_self (), (vm_address_t) names, @@ -310,18 +310,18 @@ darwin_debug_port_info (task_t task, mach_port_t port) (task, port, MACH_PORT_RECEIVE_STATUS, (mach_port_info_t)&status, &len); MACH_CHECK_ERROR (kret); - printf_unfiltered (_("Port 0x%lx in task 0x%lx:\n"), (unsigned long) port, - (unsigned long) task); - printf_unfiltered (_(" port set: 0x%x\n"), status.mps_pset); - printf_unfiltered (_(" seqno: 0x%x\n"), status.mps_seqno); - printf_unfiltered (_(" mscount: 0x%x\n"), status.mps_mscount); - printf_unfiltered (_(" qlimit: 0x%x\n"), status.mps_qlimit); - printf_unfiltered (_(" msgcount: 0x%x\n"), status.mps_msgcount); - printf_unfiltered (_(" sorights: 0x%x\n"), status.mps_sorights); - printf_unfiltered (_(" srights: 0x%x\n"), status.mps_srights); - printf_unfiltered (_(" pdrequest: 0x%x\n"), status.mps_pdrequest); - printf_unfiltered (_(" nsrequest: 0x%x\n"), status.mps_nsrequest); - printf_unfiltered (_(" flags: 0x%x\n"), status.mps_flags); + printf_filtered (_("Port 0x%lx in task 0x%lx:\n"), (unsigned long) port, + (unsigned long) task); + printf_filtered (_(" port set: 0x%x\n"), status.mps_pset); + printf_filtered (_(" seqno: 0x%x\n"), status.mps_seqno); + printf_filtered (_(" mscount: 0x%x\n"), status.mps_mscount); + printf_filtered (_(" qlimit: 0x%x\n"), status.mps_qlimit); + printf_filtered (_(" msgcount: 0x%x\n"), status.mps_msgcount); + printf_filtered (_(" sorights: 0x%x\n"), status.mps_sorights); + printf_filtered (_(" srights: 0x%x\n"), status.mps_srights); + printf_filtered (_(" pdrequest: 0x%x\n"), status.mps_pdrequest); + printf_filtered (_(" nsrequest: 0x%x\n"), status.mps_nsrequest); + printf_filtered (_(" flags: 0x%x\n"), status.mps_flags); } static void @@ -352,10 +352,10 @@ info_mach_threads_command (const char *args, int from_tty) result = task_threads (task, &threads, &thread_count); MACH_CHECK_ERROR (result); - printf_unfiltered (_("Threads in task %#x:\n"), task); + printf_filtered (_("Threads in task %#x:\n"), task); for (i = 0; i < thread_count; ++i) { - printf_unfiltered (_(" %#x\n"), threads[i]); + printf_filtered (_(" %#x\n"), threads[i]); mach_port_deallocate (task_self (), threads[i]); } @@ -378,7 +378,7 @@ info_mach_thread_command (const char *args, int from_tty) CHECK_ARGS (_("Thread"), args); sscanf (args, "0x%x", &thread); - printf_unfiltered (_("THREAD_BASIC_INFO\n")); + printf_filtered (_("THREAD_BASIC_INFO\n")); info_count = THREAD_BASIC_INFO_COUNT; result = thread_info (thread, THREAD_BASIC_INFO, @@ -752,39 +752,39 @@ disp_exception (const darwin_exception_info *info) switch (info->behaviors[i]) { case EXCEPTION_DEFAULT: - printf_unfiltered (_("default")); + printf_filtered (_("default")); break; case EXCEPTION_STATE: - printf_unfiltered (_("state")); + printf_filtered (_("state")); break; case EXCEPTION_STATE_IDENTITY: - printf_unfiltered (_("state-identity")); + printf_filtered (_("state-identity")); break; default: - printf_unfiltered (_("0x%x"), info->behaviors[i]); + printf_filtered (_("0x%x"), info->behaviors[i]); } - printf_unfiltered (_(", masks:")); + printf_filtered (_(", masks:")); if (mask & EXC_MASK_BAD_ACCESS) - printf_unfiltered (_(" BAD_ACCESS")); + printf_filtered (_(" BAD_ACCESS")); if (mask & EXC_MASK_BAD_INSTRUCTION) - printf_unfiltered (_(" BAD_INSTRUCTION")); + printf_filtered (_(" BAD_INSTRUCTION")); if (mask & EXC_MASK_ARITHMETIC) - printf_unfiltered (_(" ARITHMETIC")); + printf_filtered (_(" ARITHMETIC")); if (mask & EXC_MASK_EMULATION) - printf_unfiltered (_(" EMULATION")); + printf_filtered (_(" EMULATION")); if (mask & EXC_MASK_SOFTWARE) - printf_unfiltered (_(" SOFTWARE")); + printf_filtered (_(" SOFTWARE")); if (mask & EXC_MASK_BREAKPOINT) - printf_unfiltered (_(" BREAKPOINT")); + printf_filtered (_(" BREAKPOINT")); if (mask & EXC_MASK_SYSCALL) - printf_unfiltered (_(" SYSCALL")); + printf_filtered (_(" SYSCALL")); if (mask & EXC_MASK_MACH_SYSCALL) - printf_unfiltered (_(" MACH_SYSCALL")); + printf_filtered (_(" MACH_SYSCALL")); if (mask & EXC_MASK_RPC_ALERT) - printf_unfiltered (_(" RPC_ALERT")); + printf_filtered (_(" RPC_ALERT")); if (mask & EXC_MASK_CRASH) - printf_unfiltered (_(" CRASH")); - printf_unfiltered (_("\n")); + printf_filtered (_(" CRASH")); + printf_filtered (_("\n")); } } @@ -801,7 +801,7 @@ info_mach_exceptions_command (const char *args, int from_tty) if (strcmp (args, "saved") == 0) { if (inferior_ptid == null_ptid) - printf_unfiltered (_("No inferior running\n")); + printf_filtered (_("No inferior running\n")); darwin_inferior *priv = get_darwin_inferior (current_inferior ()); @@ -825,7 +825,7 @@ info_mach_exceptions_command (const char *args, int from_tty) struct inferior *inf; if (inferior_ptid == null_ptid) - printf_unfiltered (_("No inferior running\n")); + printf_filtered (_("No inferior running\n")); inf = current_inferior (); darwin_inferior *priv = get_darwin_inferior (inf); diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c index e9c24dcc5dc..d96ce1a6c65 100644 --- a/gdb/darwin-nat.c +++ b/gdb/darwin-nat.c @@ -169,8 +169,8 @@ inferior_debug (int level, const char *fmt, ...) return; va_start (ap, fmt); - printf_unfiltered (_("[%d inferior]: "), getpid ()); - vprintf_unfiltered (fmt, ap); + fprintf_unfiltered (gdb_stdlog, _("[%d inferior]: "), getpid ()); + vfprintf_unfiltered (gdb_stdlog, fmt, ap); va_end (ap); } @@ -459,13 +459,20 @@ darwin_resume_inferior (struct inferior *inf) static void darwin_dump_message (mach_msg_header_t *hdr, int disp_body) { - printf_unfiltered (_("message header:\n")); - printf_unfiltered (_(" bits: 0x%x\n"), hdr->msgh_bits); - printf_unfiltered (_(" size: 0x%x\n"), hdr->msgh_size); - printf_unfiltered (_(" remote-port: 0x%x\n"), hdr->msgh_remote_port); - printf_unfiltered (_(" local-port: 0x%x\n"), hdr->msgh_local_port); - printf_unfiltered (_(" reserved: 0x%x\n"), hdr->msgh_reserved); - printf_unfiltered (_(" id: 0x%x\n"), hdr->msgh_id); + fprintf_unfiltered (gdb_stdlog, + _("message header:\n")); + fprintf_unfiltered (gdb_stdlog, + _(" bits: 0x%x\n"), hdr->msgh_bits); + fprintf_unfiltered (gdb_stdlog, + _(" size: 0x%x\n"), hdr->msgh_size); + fprintf_unfiltered (gdb_stdlog, + _(" remote-port: 0x%x\n"), hdr->msgh_remote_port); + fprintf_unfiltered (gdb_stdlog, + _(" local-port: 0x%x\n"), hdr->msgh_local_port); + fprintf_unfiltered (gdb_stdlog, + _(" reserved: 0x%x\n"), hdr->msgh_reserved); + fprintf_unfiltered (gdb_stdlog, + _(" id: 0x%x\n"), hdr->msgh_id); if (disp_body) { @@ -484,21 +491,24 @@ darwin_dump_message (mach_msg_header_t *hdr, int disp_body) (mach_msg_port_descriptor_t *)(bod + 1); int k; NDR_record_t *ndr; - printf_unfiltered (_("body: descriptor_count=%u\n"), - bod->msgh_descriptor_count); + fprintf_unfiltered (gdb_stdlog, + _("body: descriptor_count=%u\n"), + bod->msgh_descriptor_count); data += sizeof (mach_msg_body_t); size -= sizeof (mach_msg_body_t); for (k = 0; k < bod->msgh_descriptor_count; k++) switch (desc[k].type) { case MACH_MSG_PORT_DESCRIPTOR: - printf_unfiltered - (_(" descr %d: type=%u (port) name=0x%x, dispo=%d\n"), + fprintf_unfiltered + (gdb_stdlog, + _(" descr %d: type=%u (port) name=0x%x, dispo=%d\n"), k, desc[k].type, desc[k].name, desc[k].disposition); break; default: - printf_unfiltered (_(" descr %d: type=%u\n"), - k, desc[k].type); + fprintf_unfiltered (gdb_stdlog, + _(" descr %d: type=%u\n"), + k, desc[k].type); break; } data += bod->msgh_descriptor_count @@ -506,8 +516,9 @@ darwin_dump_message (mach_msg_header_t *hdr, int disp_body) size -= bod->msgh_descriptor_count * sizeof (mach_msg_port_descriptor_t); ndr = (NDR_record_t *)(desc + bod->msgh_descriptor_count); - printf_unfiltered - (_("NDR: mig=%02x if=%02x encod=%02x " + fprintf_unfiltered + (gdb_stdlog, + _("NDR: mig=%02x if=%02x encod=%02x " "int=%02x char=%02x float=%02x\n"), ndr->mig_vers, ndr->if_vers, ndr->mig_encoding, ndr->int_rep, ndr->char_rep, ndr->float_rep); @@ -515,11 +526,11 @@ darwin_dump_message (mach_msg_header_t *hdr, int disp_body) size -= sizeof (NDR_record_t); } - printf_unfiltered (_(" data:")); + fprintf_unfiltered (gdb_stdlog, _(" data:")); ldata = (const unsigned int *)data; for (i = 0; i < size / sizeof (unsigned int); i++) - printf_unfiltered (" %08x", ldata[i]); - printf_unfiltered (_("\n")); + fprintf_unfiltered (gdb_stdlog, " %08x", ldata[i]); + fprintf_unfiltered (gdb_stdlog, _("\n")); } } @@ -977,8 +988,8 @@ darwin_nat_target::decode_message (mach_msg_header_t *hdr, if (res < 0) { /* Should not happen... */ - printf_unfiltered - (_("darwin_wait: ill-formatted message (id=0x%x)\n"), hdr->msgh_id); + warning (_("darwin_wait: ill-formatted message (id=0x%x)\n"), + hdr->msgh_id); /* FIXME: send a failure reply? */ status->set_ignore (); return minus_one_ptid; @@ -1060,7 +1071,7 @@ darwin_nat_target::decode_message (mach_msg_header_t *hdr, if (res < 0) { /* Should not happen... */ - printf_unfiltered + warning (_("darwin_wait: ill-formatted message (id=0x%x, res=%d)\n"), hdr->msgh_id, res); } @@ -1086,8 +1097,8 @@ darwin_nat_target::decode_message (mach_msg_header_t *hdr, res_pid = wait4 (inf->pid, &wstatus, 0, NULL); if (res_pid < 0 || res_pid != inf->pid) { - printf_unfiltered (_("wait4: res=%d: %s\n"), - res_pid, safe_strerror (errno)); + warning (_("wait4: res=%d: %s\n"), + res_pid, safe_strerror (errno)); status->set_ignore (); return minus_one_ptid; } @@ -2056,8 +2067,8 @@ darwin_nat_target::detach (inferior *inf, int from_tty) { res = PTRACE (PT_DETACH, inf->pid, 0, 0); if (res != 0) - printf_unfiltered (_("Unable to detach from process-id %d: %s (%d)"), - inf->pid, safe_strerror (errno), errno); + warning (_("Unable to detach from process-id %d: %s (%d)"), + inf->pid, safe_strerror (errno), errno); } darwin_reply_to_all_pending_messages (inf); diff --git a/gdb/i386-darwin-nat.c b/gdb/i386-darwin-nat.c index b7199da5610..b64b2b3e81b 100644 --- a/gdb/i386-darwin-nat.c +++ b/gdb/i386-darwin-nat.c @@ -77,9 +77,9 @@ i386_darwin_nat_target::fetch_registers (struct regcache *regcache, int regno) &gp_count); if (ret != KERN_SUCCESS) { - printf_unfiltered (_("Error calling thread_get_state for " - "GP registers for thread 0x%lx\n"), - (unsigned long) current_thread); + warning (_("Error calling thread_get_state for " + "GP registers for thread 0x%lx\n"), + (unsigned long) current_thread); MACH_CHECK_ERROR (ret); } @@ -102,9 +102,9 @@ i386_darwin_nat_target::fetch_registers (struct regcache *regcache, int regno) &fp_count); if (ret != KERN_SUCCESS) { - printf_unfiltered (_("Error calling thread_get_state for " - "float registers for thread 0x%lx\n"), - (unsigned long) current_thread); + warning (_("Error calling thread_get_state for " + "float registers for thread 0x%lx\n"), + (unsigned long) current_thread); MACH_CHECK_ERROR (ret); } amd64_supply_fxsave (regcache, -1, &fp_regs.ufs.fs64.__fpu_fcw); @@ -126,9 +126,9 @@ i386_darwin_nat_target::fetch_registers (struct regcache *regcache, int regno) &gp_count); if (ret != KERN_SUCCESS) { - printf_unfiltered (_("Error calling thread_get_state for " - "GP registers for thread 0x%lx\n"), - (unsigned long) current_thread); + warning (_("Error calling thread_get_state for " + "GP registers for thread 0x%lx\n"), + (unsigned long) current_thread); MACH_CHECK_ERROR (ret); } for (i = 0; i < I386_NUM_GREGS; i++) @@ -150,9 +150,9 @@ i386_darwin_nat_target::fetch_registers (struct regcache *regcache, int regno) &fp_count); if (ret != KERN_SUCCESS) { - printf_unfiltered (_("Error calling thread_get_state for " - "float registers for thread 0x%lx\n"), - (unsigned long) current_thread); + warning (_("Error calling thread_get_state for " + "float registers for thread 0x%lx\n"), + (unsigned long) current_thread); MACH_CHECK_ERROR (ret); } i387_supply_fxsave (regcache, -1, &fp_regs.__fpu_fcw); @@ -588,8 +588,8 @@ darwin_set_sstep (thread_t thread, int enable) (thread_state_t) ®s, &count); if (kret != KERN_SUCCESS) { - printf_unfiltered (_("darwin_set_sstep: error %x, thread=%x\n"), - kret, thread); + warning (_("darwin_set_sstep: error %x, thread=%x\n"), + kret, thread); return; }