* [PATCH] Reduce use of unfiltered output in Darwin code
@ 2022-01-06 16:13 Tom Tromey
2022-01-07 12:01 ` Andrew Burgess
0 siblings, 1 reply; 5+ messages in thread
From: Tom Tromey @ 2022-01-06 16:13 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
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.
I can't compile this patch, so it's "best effort".
---
gdb/darwin-nat-info.c | 128 +++++++++++++++++++++---------------------
gdb/darwin-nat.c | 72 +++++++++++++++---------
gdb/i386-darwin-nat.c | 33 ++++++-----
3 files changed, 127 insertions(+), 106 deletions(-)
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..f61f8904457 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,10 @@ 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);
+ fprintf_unfiltered
+ (gdb_stderr,
+ _("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,8 +1073,9 @@ 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, res=%d)\n"),
+ fprintf_unfiltered
+ (gdb_stderr,
+ _("darwin_wait: ill-formatted message (id=0x%x, res=%d)\n"),
hdr->msgh_id, res);
}
@@ -1086,8 +1100,9 @@ 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));
+ fprintf_unfiltered (gdb_stderr,
+ _("wait4: res=%d: %s\n"),
+ res_pid, safe_strerror (errno));
status->set_ignore ();
return minus_one_ptid;
}
@@ -2056,8 +2071,9 @@ 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);
+ fprintf_unfiltered (gdb_stderr,
+ _("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..92632696d39 100644
--- a/gdb/i386-darwin-nat.c
+++ b/gdb/i386-darwin-nat.c
@@ -77,9 +77,10 @@ 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);
+ fprintf_unfiltered (gdb_stderr,
+ _("Error calling thread_get_state for "
+ "GP registers for thread 0x%lx\n"),
+ (unsigned long) current_thread);
MACH_CHECK_ERROR (ret);
}
@@ -102,9 +103,10 @@ 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);
+ fprintf_unfiltered (gdb_stderr,
+ _("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 +128,10 @@ 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);
+ fprintf_unfiltered (gdb_stderr,
+ _("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 +153,10 @@ 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);
+ fprintf_unfiltered (gdb_stderr,
+ _("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 +592,9 @@ 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);
+ fprintf_unfiltered (gdb_stderr,
+ _("darwin_set_sstep: error %x, thread=%x\n"),
+ kret, thread);
return;
}
--
2.31.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Reduce use of unfiltered output in Darwin code
2022-01-06 16:13 [PATCH] Reduce use of unfiltered output in Darwin code Tom Tromey
@ 2022-01-07 12:01 ` Andrew Burgess
2022-01-07 22:13 ` Tom Tromey
2022-01-08 16:36 ` Tom Tromey
0 siblings, 2 replies; 5+ messages in thread
From: Andrew Burgess @ 2022-01-07 12:01 UTC (permalink / raw)
To: Tom Tromey; +Cc: gdb-patches
* Tom Tromey <tom@tromey.com> [2022-01-06 09:13:42 -0700]:
> 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.
I'm tempted to suggest that all of the places where we now write to
gdb_stderr should be replaced with calls to warning instead.
Also, you have some trailing whitespace (which I only notice because
'git am' tells me, not because I go hunting for such things), I've
marked the locations below.
>
> 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.
>
> I can't compile this patch, so it's "best effort".
> ---
> gdb/darwin-nat-info.c | 128 +++++++++++++++++++++---------------------
> gdb/darwin-nat.c | 72 +++++++++++++++---------
> gdb/i386-darwin-nat.c | 33 ++++++-----
> 3 files changed, 127 insertions(+), 106 deletions(-)
>
> 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..f61f8904457 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);
Trailing whitespace after gdb_stdlog in the 7 calls above.
>
> 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);
And another one.
> 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);
And again.
Thanks,
Andrew
> 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,10 @@ 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);
> + fprintf_unfiltered
> + (gdb_stderr,
> + _("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,8 +1073,9 @@ 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, res=%d)\n"),
> + fprintf_unfiltered
> + (gdb_stderr,
> + _("darwin_wait: ill-formatted message (id=0x%x, res=%d)\n"),
> hdr->msgh_id, res);
> }
>
> @@ -1086,8 +1100,9 @@ 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));
> + fprintf_unfiltered (gdb_stderr,
> + _("wait4: res=%d: %s\n"),
> + res_pid, safe_strerror (errno));
> status->set_ignore ();
> return minus_one_ptid;
> }
> @@ -2056,8 +2071,9 @@ 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);
> + fprintf_unfiltered (gdb_stderr,
> + _("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..92632696d39 100644
> --- a/gdb/i386-darwin-nat.c
> +++ b/gdb/i386-darwin-nat.c
> @@ -77,9 +77,10 @@ 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);
> + fprintf_unfiltered (gdb_stderr,
> + _("Error calling thread_get_state for "
> + "GP registers for thread 0x%lx\n"),
> + (unsigned long) current_thread);
> MACH_CHECK_ERROR (ret);
> }
>
> @@ -102,9 +103,10 @@ 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);
> + fprintf_unfiltered (gdb_stderr,
> + _("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 +128,10 @@ 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);
> + fprintf_unfiltered (gdb_stderr,
> + _("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 +153,10 @@ 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);
> + fprintf_unfiltered (gdb_stderr,
> + _("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 +592,9 @@ 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);
> + fprintf_unfiltered (gdb_stderr,
> + _("darwin_set_sstep: error %x, thread=%x\n"),
> + kret, thread);
> return;
> }
>
> --
> 2.31.1
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Reduce use of unfiltered output in Darwin code
2022-01-07 12:01 ` Andrew Burgess
@ 2022-01-07 22:13 ` Tom Tromey
2022-01-08 16:36 ` Tom Tromey
1 sibling, 0 replies; 5+ messages in thread
From: Tom Tromey @ 2022-01-07 22:13 UTC (permalink / raw)
To: Andrew Burgess; +Cc: Tom Tromey, gdb-patches
Andrew> I'm tempted to suggest that all of the places where we now write to
Andrew> gdb_stderr should be replaced with calls to warning instead.
I'll do that.
Andrew> Also, you have some trailing whitespace (which I only notice because
Andrew> 'git am' tells me, not because I go hunting for such things), I've
Andrew> marked the locations below.
Thanks, I'll fix these.
Tom
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Reduce use of unfiltered output in Darwin code
2022-01-07 12:01 ` Andrew Burgess
2022-01-07 22:13 ` Tom Tromey
@ 2022-01-08 16:36 ` Tom Tromey
2022-01-09 18:00 ` Andrew Burgess
1 sibling, 1 reply; 5+ messages in thread
From: Tom Tromey @ 2022-01-08 16:36 UTC (permalink / raw)
To: Andrew Burgess; +Cc: Tom Tromey, gdb-patches
>> 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.
Andrew> I'm tempted to suggest that all of the places where we now write to
Andrew> gdb_stderr should be replaced with calls to warning instead.
Andrew> Also, you have some trailing whitespace (which I only notice because
Andrew> 'git am' tells me, not because I go hunting for such things), I've
Andrew> marked the locations below.
Here's v2.
Tom
commit bb991012bcfb730a647337efdd9c7a4afc86a2be
Author: Tom Tromey <tom@tromey.com>
Date: Sun Dec 26 21:38:34 2021 -0700
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;
}
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Reduce use of unfiltered output in Darwin code
2022-01-08 16:36 ` Tom Tromey
@ 2022-01-09 18:00 ` Andrew Burgess
0 siblings, 0 replies; 5+ messages in thread
From: Andrew Burgess @ 2022-01-09 18:00 UTC (permalink / raw)
To: Tom Tromey; +Cc: gdb-patches
* Tom Tromey <tom@tromey.com> [2022-01-08 09:36:46 -0700]:
> >> 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.
>
> Andrew> I'm tempted to suggest that all of the places where we now write to
> Andrew> gdb_stderr should be replaced with calls to warning instead.
>
> Andrew> Also, you have some trailing whitespace (which I only notice because
> Andrew> 'git am' tells me, not because I go hunting for such things), I've
> Andrew> marked the locations below.
>
> Here's v2.
LGTM.
Thanks,
Andrew
>
> Tom
>
> commit bb991012bcfb730a647337efdd9c7a4afc86a2be
> Author: Tom Tromey <tom@tromey.com>
> Date: Sun Dec 26 21:38:34 2021 -0700
>
> 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;
> }
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-01-09 18:00 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-06 16:13 [PATCH] Reduce use of unfiltered output in Darwin code Tom Tromey
2022-01-07 12:01 ` Andrew Burgess
2022-01-07 22:13 ` Tom Tromey
2022-01-08 16:36 ` Tom Tromey
2022-01-09 18:00 ` Andrew Burgess
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).