From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22968 invoked by alias); 1 Nov 2009 09:54:47 -0000 Received: (qmail 22957 invoked by uid 22791); 1 Nov 2009 09:54:45 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-pw0-f49.google.com (HELO mail-pw0-f49.google.com) (209.85.160.49) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 01 Nov 2009 09:54:41 +0000 Received: by pwj3 with SMTP id 3so1460151pwj.8 for ; Sun, 01 Nov 2009 01:54:40 -0800 (PST) MIME-Version: 1.0 Received: by 10.142.201.20 with SMTP id y20mr357202wff.334.1257069280078; Sun, 01 Nov 2009 01:54:40 -0800 (PST) In-Reply-To: <200910311457.58034.pedro@codesourcery.com> References: <4AD91D72.1030802@vmware.com> <200910231554.12387.pedro@codesourcery.com> <200910311457.58034.pedro@codesourcery.com> From: Hui Zhu Date: Sun, 01 Nov 2009 09:54:00 -0000 Message-ID: Subject: Re: [RFA, 3 of 3] save/restore process record, part 3 (save/restore) To: Pedro Alves Cc: gdb-patches@sourceware.org, msnyder@vmware.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes 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-11/txt/msg00001.txt.bz2 Cool. Sorry I forgot this thread. Thanks a lot. Hui On Sat, Oct 31, 2009 at 22:57, Pedro Alves wrote: > On Friday 23 October 2009 15:54:11, Pedro Alves wrote: >> On Friday 23 October 2009 15:42:00, Hui Zhu wrote: >> > =A0 =A0if (record_debug) >> > =A0 =A0 =A0printf_filtered ("\ >> >> All debug output should go to fprintf_unfiltered (gdb_stdlog, ... >> not printf_filtered. >> > > Applied. > > -- > Pedro Alves > > 2009-10-31 =A0Pedro Alves =A0 > > =A0 =A0 =A0 =A0* record.c (record_restore, cmd_record_save): Debug output= goes to > =A0 =A0 =A0 =A0gdb_stdlog. > > --- > =A0gdb/record.c | =A0 87 +++++++++++++++++++++++++++++-------------------= ----------- > =A01 file changed, 44 insertions(+), 43 deletions(-) > > Index: src/gdb/record.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- src.orig/gdb/record.c =A0 =A0 =A0 2009-10-26 17:09:38.000000000 +0000 > +++ src/gdb/record.c =A0 =A02009-10-31 14:45:19.000000000 +0000 > @@ -2005,18 +2005,18 @@ record_restore (void) > =A0 gdb_assert (record_first.next =3D=3D NULL); > > =A0 if (record_debug) > - =A0 =A0printf_filtered ("Restoring recording from core file.\n"); > + =A0 =A0fprintf_unfiltered (gdb_stdlog, "Restoring recording from core f= ile.\n"); > > =A0 /* Now need to find our special note section. =A0*/ > =A0 osec =3D bfd_get_section_by_name (core_bfd, "null0"); > =A0 osec_size =3D bfd_section_size (core_bfd, osec); > =A0 if (record_debug) > - =A0 =A0printf_filtered ("Find precord section %s.\n", > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0osec ? "succeeded" : "failed"); > - =A0if (!osec) > + =A0 =A0fprintf_unfiltered (gdb_stdlog, "Find precord section %s.\n", > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 osec ? "succeeded" : "faile= d"); > + =A0if (osec =3D=3D NULL) > =A0 =A0 return; > =A0 if (record_debug) > - =A0 =A0printf_filtered ("%s", bfd_section_name (core_bfd, osec)); > + =A0 =A0fprintf_unfiltered (gdb_stdlog, "%s", bfd_section_name (core_bfd= , osec)); > > =A0 /* Check the magic code. =A0*/ > =A0 bfdcore_read (core_bfd, osec, &magic, sizeof (magic), &bfd_offset); > @@ -2024,9 +2024,9 @@ record_restore (void) > =A0 =A0 error (_("Version mis-match or file format error in core file %s.= "), > =A0 =A0 =A0 =A0 =A0 bfd_get_filename (core_bfd)); > =A0 if (record_debug) > - =A0 =A0printf_filtered ("\ > + =A0 =A0fprintf_unfiltered (gdb_stdlog, "\ > =A0 Reading 4-byte magic cookie RECORD_FILE_MAGIC (0x%s)\n", > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0phex_nz (netorder32 (magic), 4)); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 phex_nz (netorder32 (magic)= , 4)); > > =A0 /* Restore the entries in recfd into record_arch_list_head and > =A0 =A0 =A0record_arch_list_tail. =A0*/ > @@ -2062,12 +2062,12 @@ record_restore (void) > =A0 =A0 =A0 =A0 =A0 bfdcore_read (core_bfd, osec, record_get_loc (rec), > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0rec->u.reg.len, &bfd_offse= t); > > - =A0 =A0 =A0 =A0 =A0if (record_debug) > - =A0 =A0 =A0 =A0 =A0 =A0printf_filtered ("\ > + =A0 =A0 =A0 =A0 if (record_debug) > + =A0 =A0 =A0 =A0 =A0 fprintf_unfiltered (gdb_stdlog, "\ > =A0 Reading register %d (1 plus %lu plus %d bytes)\n", > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0rec->u.reg.num, > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(unsigned long) = sizeof (regnum), > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0rec->u.reg.len); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 rec->u.reg.= num, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (unsigned l= ong) sizeof (regnum), > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 rec->u.reg.= len); > =A0 =A0 =A0 =A0 =A0 break; > > =A0 =A0 =A0 =A0 case record_mem: /* mem */ > @@ -2087,14 +2087,14 @@ record_restore (void) > =A0 =A0 =A0 =A0 =A0 bfdcore_read (core_bfd, osec, record_get_loc (rec), > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0rec->u.mem.len, &bfd_offse= t); > > - =A0 =A0 =A0 =A0 =A0if (record_debug) > - =A0 =A0 =A0 =A0 =A0 =A0printf_filtered ("\ > + =A0 =A0 =A0 =A0 if (record_debug) > + =A0 =A0 =A0 =A0 =A0 fprintf_unfiltered (gdb_stdlog, "\ > =A0 Reading memory %s (1 plus %lu plus %lu plus %d bytes)\n", > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0paddress (get_cu= rrent_arch (), > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0rec->u.mem.addr), > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(unsigned long) = sizeof (addr), > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(unsigned long) = sizeof (len), > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0rec->u.mem.len); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 paddress (g= et_current_arch (), > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 rec->u.mem.addr), > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (unsigned l= ong) sizeof (addr), > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (unsigned l= ong) sizeof (len), > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 rec->u.mem.= len); > =A0 =A0 =A0 =A0 =A0 break; > > =A0 =A0 =A0 =A0 case record_end: /* end */ > @@ -2113,13 +2113,13 @@ record_restore (void) > =A0 =A0 =A0 =A0 =A0count =3D netorder32 (count); > =A0 =A0 =A0 =A0 =A0rec->u.end.insn_num =3D count; > =A0 =A0 =A0 =A0 =A0record_insn_count =3D count + 1; > - =A0 =A0 =A0 =A0 =A0if (record_debug) > - =A0 =A0 =A0 =A0 =A0 =A0printf_filtered ("\ > + =A0 =A0 =A0 =A0 if (record_debug) > + =A0 =A0 =A0 =A0 =A0 fprintf_unfiltered (gdb_stdlog, "\ > =A0 Reading record_end (1 + %lu + %lu bytes), offset =3D=3D %s\n", > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(unsigned long) = sizeof (signal), > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(unsigned long) = sizeof (count), > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0paddress (get_cu= rrent_arch (), > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0bfd_offset)); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (unsigned l= ong) sizeof (signal), > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (unsigned l= ong) sizeof (count), > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 paddress (g= et_current_arch (), > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 bfd_offset)); > =A0 =A0 =A0 =A0 =A0 break; > > =A0 =A0 =A0 =A0 default: > @@ -2225,7 +2225,8 @@ cmd_record_save (char *args, int from_tt > > =A0 /* Open the save file. =A0*/ > =A0 if (record_debug) > - =A0 =A0printf_filtered ("Saving execution log to core file '%s'\n", rec= filename); > + =A0 =A0fprintf_unfiltered (gdb_stdlog, "Saving execution log to core fi= le '%s'\n", > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 recfilename); > > =A0 /* Open the output file. =A0*/ > =A0 obfd =3D create_gcore_bfd (recfilename); > @@ -2291,9 +2292,9 @@ cmd_record_save (char *args, int from_tt > =A0 /* Write the magic code. =A0*/ > =A0 magic =3D RECORD_FILE_MAGIC; > =A0 if (record_debug) > - =A0 =A0printf_filtered ("\ > + =A0 =A0fprintf_unfiltered (gdb_stdlog, "\ > =A0 Writing 4-byte magic cookie RECORD_FILE_MAGIC (0x%s)\n", > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0phex_nz (magic, 4)); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 phex_nz (magic, 4)); > =A0 bfdcore_write (obfd, osec, &magic, sizeof (magic), &bfd_offset); > > =A0 /* Save the entries to recfd and forward execute to the end of > @@ -2314,12 +2315,12 @@ cmd_record_save (char *args, int from_tt > =A0 =A0 =A0 =A0 =A0 switch (record_list->type) > =A0 =A0 =A0 =A0 =A0 =A0 { > =A0 =A0 =A0 =A0 =A0 =A0 case record_reg: /* reg */ > - =A0 =A0 =A0 =A0 =A0 =A0 =A0if (record_debug) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 printf_filtered ("\ > + =A0 =A0 =A0 =A0 =A0 =A0 if (record_debug) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 fprintf_unfiltered (gdb_stdlog, "\ > =A0 Writing register %d (1 plus %lu plus %d bytes)\n", > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0record_l= ist->u.reg.num, > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(unsigne= d long) sizeof (regnum), > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0record_l= ist->u.reg.len); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 rec= ord_list->u.reg.num, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (un= signed long) sizeof (regnum), > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 rec= ord_list->u.reg.len); > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* Write regnum. =A0*/ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 regnum =3D netorder32 (record_list->u.reg.num= ); > @@ -2333,13 +2334,13 @@ cmd_record_save (char *args, int from_tt > > =A0 =A0 =A0 =A0 =A0 =A0 case record_mem: /* mem */ > =A0 =A0 =A0 =A0 =A0 =A0 =A0if (record_debug) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 printf_filtered ("\ > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 fprintf_unfiltered (gdb_stdlog, "\ > =A0 Writing memory %s (1 plus %lu plus %lu plus %d bytes)\n", > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0paddress= (gdbarch, > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0record_list->u.mem.addr), > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(unsigne= d long) sizeof (addr), > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(unsigne= d long) sizeof (len), > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0record_l= ist->u.mem.len); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 pad= dress (gdbarch, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0 =A0 record_list->u.mem.addr), > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (un= signed long) sizeof (addr), > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (un= signed long) sizeof (len), > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 rec= ord_list->u.mem.len); > > =A0 =A0 =A0 =A0 =A0 =A0 =A0/* Write memlen. =A0*/ > =A0 =A0 =A0 =A0 =A0 =A0 =A0len =3D netorder32 (record_list->u.mem.len); > @@ -2356,11 +2357,11 @@ cmd_record_save (char *args, int from_tt > =A0 =A0 =A0 =A0 =A0 =A0 =A0 break; > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 case record_end: > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (record_debug) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0printf_filtered ("\ > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (record_debug) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 fprintf_unfiltered (gdb_stdlog, "\ > =A0 Writing record_end (1 + %lu + %lu bytes)\n", > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(uns= igned long) sizeof (signal), > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(uns= igned long) sizeof (count)); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= (unsigned long) sizeof (signal), > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= (unsigned long) sizeof (count)); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0/* Write signal value. =A0*/ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0signal =3D netorder32 (record_list->u.end.= sigval); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0bfdcore_write (obfd, osec, &signal, >