From: Hui Zhu <teawater@gmail.com>
To: Michael Snyder <msnyder@vmware.com>
Cc: Eli Zaretskii <eliz@gnu.org>,
"gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: [RFA/RFC] Add dump and load command to process record and replay
Date: Fri, 07 Aug 2009 03:29:00 -0000 [thread overview]
Message-ID: <daef60380908062026p64092c92i1556ee1302ee452c@mail.gmail.com> (raw)
In-Reply-To: <4A7B99B3.40407@vmware.com>
About it, I think keep the old one can make the function more
flexible. I try it sometime. It can make two or more gdb_record files
to one file.
What about add a warning to there? When the record list is not empty,
output a warning.
Thanks,
Hui
On Fri, Aug 7, 2009 at 11:04, Michael Snyder<msnyder@vmware.com> wrote:
> Hui Zhu wrote:
>
>> +/* Load the execution log from a file. */
>> +
>> +static void
>> +cmd_record_load (char *args, int from_tty)
>> +{
>> + int recfd;
>> + uint32_t magic;
>> + struct cleanup *old_cleanups;
>> + struct cleanup *old_cleanups2;
>> + struct record_entry *rec;
>> + int insn_number = 0;
>> +
>> + if (current_target.to_stratum != record_stratum)
>> + {
>> + cmd_record_start (NULL, from_tty);
>> + printf_unfiltered (_("Auto start process record.\n"));
>> + }
>> +
>> + if (!args || (args && !*args))
>> + error (_("Argument for filename required.\n"));
>> +
>> + /* Open the load file. */
>> + recfd = open (args, O_RDONLY | O_BINARY);
>> + if (recfd < 0)
>> + error (_("Failed to open '%s' for loading execution records: %s"),
>> + args, strerror (errno));
>> + old_cleanups = make_cleanup (cmd_record_fd_cleanups, &recfd);
>> +
>> + /* Check the magic code. */
>> + record_read_dump (args, recfd, &magic, 4);
>> + if (magic != RECORD_FILE_MAGIC)
>> + error (_("'%s' is not a valid dump of execution records."), args);
>> +
>> + /* Load the entries in recfd to the record_arch_list_head and
>> + record_arch_list_tail. */
>> + record_arch_list_head = NULL;
>> + record_arch_list_tail = NULL;
>
> Hi Hui,
>
> It seems to me that you didn't discard the old recording entries
> before loading the new ones -- you just added the new ones into
> the existing list.
>
> I don't think that is safe. We can't be sure that there is
> any relationship between any existing recording entries and
> the new entries from the file. We certainly can't assume
> that they are consecutive.
>
> I think you have to completely clear the record log at this point,
> before you begin reading new entries from the dump file.
>
> What I would suggest is that we add these lines to
> record_list_release -- and then we can just call that here.
>
> @@ -159,6 +159,11 @@ record_list_release (struct record_entry
>
> if (rec != &record_first)
> xfree (rec);
> +
> + record_list = &record_first;
> + record_arch_list_tail = NULL;
> + record_arch_list_tail = NULL;
> + record_insn_num = 0;
> }
>
>
>
next prev parent reply other threads:[~2009-08-07 3:27 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-01 7:31 Hui Zhu
2009-08-01 9:57 ` Eli Zaretskii
2009-08-01 19:20 ` Michael Snyder
2009-08-02 3:18 ` Michael Snyder
2009-08-02 5:58 ` Hui Zhu
2009-08-03 4:12 ` Hui Zhu
2009-08-03 18:29 ` Eli Zaretskii
2009-08-04 1:58 ` Hui Zhu
2009-08-04 2:07 ` Hui Zhu
2009-08-04 18:26 ` Eli Zaretskii
2009-08-04 20:01 ` Michael Snyder
2009-08-05 9:21 ` Hui Zhu
2009-08-05 20:19 ` [RFA/RFC] Add dump and load command to process record (file format etc) Michael Snyder
2009-08-06 2:17 ` Hui Zhu
2009-08-12 14:11 ` Michael Snyder
2009-08-12 15:16 ` Tom Tromey
2009-08-12 22:38 ` Michael Snyder
2009-08-16 0:04 ` Hui Zhu
2009-08-05 21:23 ` [RFA/RFC] Add dump and load command to process record and replay Michael Snyder
2009-08-06 3:14 ` Eli Zaretskii
2009-08-06 14:16 ` Hui Zhu
2009-08-07 3:27 ` Michael Snyder
2009-08-07 3:29 ` Hui Zhu [this message]
2009-08-07 3:34 ` Michael Snyder
2009-08-07 4:06 ` Hui Zhu
2009-08-07 8:41 ` Eli Zaretskii
2009-08-07 9:53 ` Hui Zhu
2009-08-07 12:51 ` Eli Zaretskii
2009-08-07 16:22 ` Hui Zhu
2009-08-07 17:42 ` Michael Snyder
2009-08-08 13:28 ` Hui Zhu
2009-08-10 3:09 ` Michael Snyder
2009-08-22 17:39 ` Hui Zhu
2009-08-23 1:14 ` Hui Zhu
2009-08-23 23:43 ` Michael Snyder
2009-08-24 8:20 ` Hui Zhu
2009-08-24 18:32 ` Michael Snyder
2009-08-25 8:47 ` Hui Zhu
2009-08-26 1:40 ` Michael Snyder
2009-08-26 2:59 ` Michael Snyder
2009-08-29 15:53 ` Hui Zhu
2009-08-29 18:06 ` Eli Zaretskii
2009-08-29 18:28 ` Hui Zhu
2009-08-29 20:26 ` Eli Zaretskii
2009-08-29 20:39 ` Michael Snyder
2009-08-30 3:03 ` Eli Zaretskii
2009-08-30 5:36 ` Hui Zhu
2009-08-30 23:40 ` Eli Zaretskii
2009-08-31 7:10 ` Hui Zhu
2009-09-05 3:30 ` Michael Snyder
2009-09-06 16:29 ` Hui Zhu
2009-08-29 20:05 ` Michael Snyder
2009-08-29 20:33 ` Eli Zaretskii
2009-08-29 21:20 ` Michael Snyder
2022-01-21 6:46 Simon Sobisch via Gdb-patches
2022-01-24 9:26 ` Hui Zhu via Gdb-patches
2022-04-13 12:21 ` Simon Sobisch via Gdb-patches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=daef60380908062026p64092c92i1556ee1302ee452c@mail.gmail.com \
--to=teawater@gmail.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
--cc=msnyder@vmware.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox