From: teawater <teawater@gmail.com>
To: "Michael Snyder" <msnyder@vmware.com>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: [RFA record/replay] Eliminate global variables
Date: Tue, 07 Oct 2008 01:23:00 -0000 [thread overview]
Message-ID: <daef60380810061822l44da525eof9ac53ef2d77ff27@mail.gmail.com> (raw)
In-Reply-To: <48EAB886.8050308@vmware.com>
You are welcome.
On Tue, Oct 7, 2008 at 09:16, Michael Snyder <msnyder@vmware.com> wrote:
> Done, and thanks for the quick response!
>
> teawater wrote:
>>
>> If you have checked in the code that disable the displaced_stepping
>> when precord is enable, this patch is OK. Please check it in.
>>
>> Thanks,
>> Hui
>>
>> On Tue, Oct 7, 2008 at 09:04, Michael Snyder <msnyder@vmware.com> wrote:
>>>
>>> The change to 'use_displaced_stepping' makes these
>>> changes unnecessary. GDB will not use displaced stepping
>>> while recording or replaying.
>>>
>>>
>>> 2008-10-06 Michael Snyder <msnyder@vmware.com>
>>>
>>> * record.c (displaced_step_fixup): Remove.
>>> (record_message_cleanups): Remove displaced step handling.
>>> (record_message): Remove displaced step handling.
>>> * infrun.c (displaced_step_ptid): Back to being static.
>>> (displaced_step_original, displaced_step_copy): Ditto.
>>>
>>> Index: infrun.c
>>> ===================================================================
>>> RCS file: /cvs/src/src/gdb/infrun.c,v
>>> retrieving revision 1.300.2.9
>>> diff -u -p -r1.300.2.9 infrun.c
>>> --- infrun.c 6 Oct 2008 17:23:31 -0000 1.300.2.9
>>> +++ infrun.c 6 Oct 2008 22:56:32 -0000
>>> @@ -594,9 +594,7 @@ static ptid_t deferred_step_ptid;
>>> /* If this is not null_ptid, this is the thread carrying out a
>>> displaced single-step. This thread's state will require fixing up
>>> once it has completed its step. */
>>> -/* Record.c(record_message) use it to confirm if the next step is
>>> displaced
>>> - step. */
>>> -ptid_t displaced_step_ptid;
>>> +static ptid_t displaced_step_ptid;
>>>
>>> struct displaced_step_request
>>> {
>>> @@ -615,9 +613,7 @@ static struct gdbarch *displaced_step_gd
>>> static struct displaced_step_closure *displaced_step_closure;
>>>
>>> /* The address of the original instruction, and the copy we made. */
>>> -/* Record.c(record_message) use them to get the original PC and set it
>>> back.
>>> - Because record_message need to record the original PC. */
>>> -CORE_ADDR displaced_step_original, displaced_step_copy;
>>> +static CORE_ADDR displaced_step_original, displaced_step_copy;
>>>
>>> /* Saved contents of copy area. */
>>> static gdb_byte *displaced_step_saved_copy;
>>> Index: record.c
>>> ===================================================================
>>> RCS file: /cvs/src/src/gdb/Attic/record.c,v
>>> retrieving revision 1.1.2.17
>>> diff -u -p -r1.1.2.17 record.c
>>> --- record.c 6 Oct 2008 17:52:17 -0000 1.1.2.17
>>> +++ record.c 6 Oct 2008 22:56:32 -0000
>>> @@ -37,9 +37,6 @@ record_t *record_arch_list_head = NULL;
>>> record_t *record_arch_list_tail = NULL;
>>> struct regcache *record_regcache = NULL;
>>>
>>> -extern void displaced_step_fixup (ptid_t event_ptid,
>>> - enum target_signal signal);
>>> -
>>> /* 0 ask user. 1 auto delete the last record_t. */
>>> static int record_insn_max_mode = 0;
>>> static int record_insn_max_num = DEFAULT_RECORD_INSN_MAX_NUM;
>>> @@ -54,8 +51,6 @@ static int record_not_record = 0;
>>> int record_will_store_registers = 0;
>>>
>>> extern struct bp_location *bp_location_chain;
>>> -extern ptid_t displaced_step_ptid;
>>> -extern CORE_ADDR displaced_step_original, displaced_step_copy;
>>>
>>> /* The real beneath function pointers. */
>>> void (*record_beneath_to_resume) (ptid_t, int, enum target_signal);
>>> @@ -326,11 +321,6 @@ static void
>>> record_message_cleanups (void *ignore)
>>> {
>>> record_list_release (record_arch_list_tail);
>>> -
>>> - /* Clean for displaced stepping */
>>> - if (!ptid_equal (displaced_step_ptid, null_ptid))
>>> - displaced_step_fixup (displaced_step_ptid, TARGET_SIGNAL_TRAP);
>>> -
>>> set_executing (inferior_ptid, 0);
>>> normal_stop ();
>>> }
>>> @@ -349,24 +339,7 @@ record_message (struct gdbarch *gdbarch)
>>>
>>> record_regcache = get_current_regcache ();
>>>
>>> - if (!ptid_equal (displaced_step_ptid, null_ptid))
>>> - {
>>> - /* Deal with displaced stepping. */
>>> - if (record_debug)
>>> - {
>>> - fprintf_unfiltered (gdb_stdlog,
>>> - "Record: this stepping is displaced
>>> stepping.
>>> Change PC register to original address 0x%s before call gdbarch_record.
>>> After that, change it back to 0x%s.\n",
>>> - paddr_nz (displaced_step_original),
>>> - paddr_nz (displaced_step_copy));
>>> - }
>>> - regcache_write_pc (record_regcache, displaced_step_original);
>>> - ret = gdbarch_record (gdbarch, displaced_step_copy);
>>> - regcache_write_pc (record_regcache, displaced_step_copy);
>>> - }
>>> - else
>>> - {
>>> - ret = gdbarch_record (gdbarch, regcache_read_pc
>>> (record_regcache));
>>> - }
>>> + ret = gdbarch_record (gdbarch, regcache_read_pc (record_regcache));
>>>
>>> if (ret > 0)
>>> error (_("Record: record pause the program."));
>>>
>>>
>
>
prev parent reply other threads:[~2008-10-07 1:23 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-07 1:07 Michael Snyder
2008-10-07 1:14 ` teawater
2008-10-07 1:19 ` Michael Snyder
2008-10-07 1:23 ` teawater [this message]
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=daef60380810061822l44da525eof9ac53ef2d77ff27@mail.gmail.com \
--to=teawater@gmail.com \
--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