From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10601 invoked by alias); 17 Apr 2009 06:32:58 -0000 Received: (qmail 10590 invoked by uid 22791); 17 Apr 2009 06:32:56 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,SARE_SUB_PCT_LETTER X-Spam-Check-By: sourceware.org Received: from mailhost.u-strasbg.fr (HELO mailhost.u-strasbg.fr) (130.79.200.151) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 17 Apr 2009 06:32:50 +0000 Received: from baal.u-strasbg.fr (baal.u-strasbg.fr [IPv6:2001:660:2402::41]) by mailhost.u-strasbg.fr (8.14.2/jtpda-5.5pre1) with ESMTP id n3H6Wjfa051484 for ; Fri, 17 Apr 2009 08:32:45 +0200 (CEST) Received: from mailserver.u-strasbg.fr (ms2.u-strasbg.fr [IPv6:2001:660:2402:d::11]) by baal.u-strasbg.fr (8.14.0/jtpda-5.5pre1) with ESMTP id n3H6WiWQ001953 for ; Fri, 17 Apr 2009 08:32:44 +0200 (CEST) (envelope-from muller@ics.u-strasbg.fr) Received: from d620muller (lec67-4-82-230-53-140.fbx.proxad.net [82.230.53.140]) (user=mullerp mech=LOGIN) by mailserver.u-strasbg.fr (8.14.3/jtpda-5.5pre1) with ESMTP id n3H6WhVr002372 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO) for ; Fri, 17 Apr 2009 08:32:44 +0200 (CEST) (envelope-from muller@ics.u-strasbg.fr) From: "Pierre Muller" To: Subject: [RFA] ARI fix: %p rule Date: Fri, 17 Apr 2009 06:32:00 -0000 Message-ID: <000601c9bf26$50f53740$f2dfa5c0$@u-strasbg.fr> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-04/txt/msg00408.txt.bz2 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 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);