[RFA] ARI fix: %p rule

Pierre Muller
2009-04-17T06:32:58Z

Most of the remaining usages of %p
in printf family messages
are related to pointers in the host space
rater that target space.

Thus the recommendation to use paddress
is not correct for these cases, and I
used host_address_to_string instead.

Is this OK?

Pierre Muller
Pascal language support maintainer for GDB

I left a few cases out, where
the %p value was not a simple pointer
but a arithmetic operation,
I don't know the rules for C,
is an addition of a pointer and a integer
always of type pointer?

2009-04-17 Pierre Muller <muller.u-strasbg.fr>

ARI fix: Do not use %p, replace by call to host_address_to_string
for host pointers.
* darwin-nat.c (darwin_xfer_partial): Apply change.
* gnu-nat.c (inf_continue, gnu_xfer_memory): Ditto.
* gnu-nat.h (proc_debug): Ditto.
* symmisc.c (maintenance_info_symtabs): Ditto.
(maintenance_info_psymtabs): Ditto.
* windows-nat.c (handle_load_dll): Ditto.
(handle_unload_dll, info_w32_command, handle_exception): Ditto.
* xtensa-tdep.c (xtensa_unwind_pc): Ditto.

Index: src/gdb/darwin-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/darwin-nat.c,v
retrieving revision 1.7
diff -u -p -r1.7 darwin-nat.c
--- src/gdb/darwin-nat.c 24 Mar 2009 07:19:46 -0000 1.7
+++ src/gdb/darwin-nat.c 16 Apr 2009 23:42:57 -0000
@@ -1197,8 +1197,10 @@ darwin_xfer_partial (struct target_ops *
gdb_byte *readbuf, const gdb_byte *writebuf,
ULONGEST offset, LONGEST len)
{
- inferior_debug (8, _("darwin_xfer_partial(%s, %d, rbuf=%p, wbuf=%p)\n"),
- core_addr_to_string (offset), (int)len, readbuf,
writebuf);
+ inferior_debug (8, _("darwin_xfer_partial(%s, %d, rbuf=%s, wbuf=%s)\n"),
+ core_addr_to_string (offset), (int)len,
+ host_address_to_string (readbuf),
+ host_address_to_string (writebuf));

if (object != TARGET_OBJECT_MEMORY)
return -1;
Index: src/gdb/gnu-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/gnu-nat.c,v
retrieving revision 1.61
diff -u -p -r1.61 gnu-nat.c
--- src/gdb/gnu-nat.c 17 Mar 2009 19:28:08 -0000 1.61
+++ src/gdb/gnu-nat.c 16 Apr 2009 23:42:58 -0000
@@ -113,7 +113,8 @@ void inf_continue (struct inf *inf);

#define inf_debug(_inf, msg, args...) \
do { struct inf *__inf = (_inf); \
- debug ("{inf %d %p}: " msg, __inf->pid, __inf , ##args); } while (0)
+ debug ("{inf %d %s}: " msg, __inf->pid, \
+ host_address_to_string (__inf) , ##args); } while (0)

void proc_abort (struct proc *proc, int force);
struct proc *make_proc (struct inf *inf, mach_port_t port, int tid);
@@ -2490,9 +2491,9 @@ gnu_xfer_memory (CORE_ADDR memaddr, gdb_
return 0;
else
{
- inf_debug (gnu_current_inf, "%s %p[%d] %s %p",
- write ? "writing" : "reading", (void *) memaddr, len,
- write ? "<--" : "-->", myaddr);
+ inf_debug (gnu_current_inf, "%s %s[%d] %s %s",
+ write ? "writing" : "reading", paddr (memaddr), len,
+ write ? "<--" : "-->", host_address_to_string (myaddr));
if (write)
return gnu_write_inferior (task, memaddr, myaddr, len);
else
Index: src/gdb/gnu-nat.h
===================================================================
RCS file: /cvs/src/src/gdb/gnu-nat.h,v
retrieving revision 1.9
diff -u -p -r1.9 gnu-nat.h
--- src/gdb/gnu-nat.h 3 Jan 2009 05:57:51 -0000 1.9
+++ src/gdb/gnu-nat.h 16 Apr 2009 23:42:58 -0000
@@ -88,8 +88,9 @@ extern char *proc_string (struct proc *p

#define proc_debug(_proc, msg, args...) \
do { struct proc *__proc = (_proc); \
- debug ("{proc %d/%d %p}: " msg, \
- __proc_pid (__proc), __proc->tid, __proc , ##args); } while
(0)
+ debug ("{proc %d/%d %s}: " msg, \
+ __proc_pid (__proc), __proc->tid,
+ host_address_to_string (__proc) , ##args); } while (0)

extern int gnu_debug_flag;

Index: src/gdb/symmisc.c
===================================================================
RCS file: /cvs/src/src/gdb/symmisc.c,v
retrieving revision 1.60
diff -u -p -r1.60 symmisc.c
--- src/gdb/symmisc.c 3 Jan 2009 05:57:53 -0000 1.60
+++ src/gdb/symmisc.c 16 Apr 2009 23:43:02 -0000
@@ -948,22 +948,24 @@ maintenance_info_symtabs (char *regexp,
{
printf_filtered ("{ objfile %s ", objfile->name);
wrap_here (" ");
- printf_filtered ("((struct objfile *) %p)\n", objfile);
+ printf_filtered ("((struct objfile *) %s)\n",
+ host_address_to_string (objfile));
printed_objfile_start = 1;
}

printf_filtered (" { symtab %s ", symtab->filename);
wrap_here (" ");
- printf_filtered ("((struct symtab *) %p)\n", symtab);
+ printf_filtered ("((struct symtab *) %s)\n",
+ host_address_to_string (symtab));
printf_filtered (" dirname %s\n",
symtab->dirname ? symtab->dirname :
"(null)");
printf_filtered (" fullname %s\n",
symtab->fullname ? symtab->fullname :
"(null)");
- printf_filtered (" blockvector ((struct blockvector
*) %p)%s\n",
- symtab->blockvector,
+ printf_filtered (" blockvector ((struct blockvector
*) %s)%s\n",
+ host_address_to_string (symtab->blockvector),
symtab->primary ? " (primary)" : "");
- printf_filtered (" linetable ((struct linetable *)
%p)\n",
- symtab->linetable);
+ printf_filtered (" linetable ((struct linetable *)
%s)\n",
+ host_address_to_string (symtab->linetable));
printf_filtered (" debugformat %s\n",
symtab->debugformat);
printf_filtered (" }\n");
}
@@ -1003,13 +1005,16 @@ maintenance_info_psymtabs (char *regexp,
{
printf_filtered ("{ objfile %s ", objfile->name);
wrap_here (" ");
- printf_filtered ("((struct objfile *) %p)\n", objfile);
+ printf_filtered ("((struct objfile *) %s)\n",
+ host_address_to_string (objfile));
printed_objfile_start = 1;
}

printf_filtered (" { psymtab %s ", psymtab->filename);
wrap_here (" ");
- printf_filtered ("((struct partial_symtab *) %p)\n", psymtab);
+ printf_filtered ("((struct partial_symtab *) %s)\n",
+ host_address_to_string (psymtab));
+
printf_filtered (" readin %s\n",
psymtab->readin ? "yes" : "no");
printf_filtered (" fullname %s\n",
@@ -1051,8 +1056,9 @@ maintenance_info_psymtabs (char *regexp,

/* Note the string concatenation there --- no comma.
*/
printf_filtered (" psymtab %s "
- "((struct partial_symtab *) %p)\n",
- dep->filename, dep);
+ "((struct partial_symtab *) %s)\n",
+ dep->filename,
+ host_address_to_string (dep));
}
printf_filtered (" }\n");
}
Index: src/gdb/windows-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/windows-nat.c,v
retrieving revision 1.188
diff -u -p -r1.188 windows-nat.c
--- src/gdb/windows-nat.c 1 Apr 2009 16:35:40 -0000 1.188
+++ src/gdb/windows-nat.c 16 Apr 2009 23:43:03 -0000
@@ -740,8 +740,8 @@ handle_load_dll (void *dummy)
solib_end->next = windows_make_so (dll_name, event->lpBaseOfDll);
solib_end = solib_end->next;

- DEBUG_EVENTS (("gdb: Loading dll \"%s\" at %p.\n", solib_end->so_name,
- solib_end->lm_info->load_addr));
+ DEBUG_EVENTS (("gdb: Loading dll \"%s\" at %s.\n", solib_end->so_name,
+ host_address_to_string (solib_end->lm_info->load_addr)));

return 1;
}
@@ -774,7 +774,8 @@ handle_unload_dll (void *dummy)
return 1;
}

- error (_("Error: dll starting at %p not found."), lpBaseOfDll);
+ error (_("Error: dll starting at %s not found."),
+ host_address_to_string (lpBaseOfDll));

return 0;
}
@@ -986,8 +987,9 @@ info_w32_command (char *args, int from_t

#define DEBUG_EXCEPTION_SIMPLE(x) if (debug_exceptions) \
- printf_unfiltered ("gdb: Target exception %s at %p\n", x, \
-
current_event.u.Exception.ExceptionRecord.ExceptionAddress)
+ printf_unfiltered ("gdb: Target exception %s at %s\n", x, \
+ host_address_to_string (\
+ current_event.u.Exception.ExceptionRecord.ExceptionAddress))

static int
handle_exception (struct target_waitstatus *ourstatus)
@@ -1098,9 +1100,10 @@ handle_exception (struct target_waitstat
/* Treat unhandled first chance exceptions specially. */
if (current_event.u.Exception.dwFirstChance)
return -1;
- printf_unfiltered ("gdb: unknown target exception 0x%08lx at %p\n",
- current_event.u.Exception.ExceptionRecord.ExceptionCode,
-
current_event.u.Exception.ExceptionRecord.ExceptionAddress);
+ printf_unfiltered ("gdb: unknown target exception 0x%08lx at %s\n",
+ current_event.u.Exception.ExceptionRecord.ExceptionCode,
+ host_address_to_string (
+ current_event.u.Exception.ExceptionRecord.ExceptionAddress));
ourstatus->value.sig = TARGET_SIGNAL_UNKNOWN;
break;
}
Index: src/gdb/xtensa-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/xtensa-tdep.c,v
retrieving revision 1.32
diff -u -p -r1.32 xtensa-tdep.c
--- src/gdb/xtensa-tdep.c 22 Feb 2009 01:02:20 -0000 1.32
+++ src/gdb/xtensa-tdep.c 16 Apr 2009 23:43:04 -0000
@@ -1018,7 +1018,8 @@ xtensa_unwind_pc (struct gdbarch *gdbarc
gdb_byte buf[8];
CORE_ADDR pc;

- DEBUGTRACE ("xtensa_unwind_pc (next_frame = %p)\n", next_frame);
+ DEBUGTRACE ("xtensa_unwind_pc (next_frame = %s)\n",
+ host_address_to_string (next_frame));

frame_unwind_register (next_frame, gdbarch_pc_regnum (gdbarch), buf);
pc = extract_typed_address (buf, builtin_type
(gdbarch)->builtin_func_ptr);