From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9640 invoked by alias); 7 Oct 2008 01:19:28 -0000 Received: (qmail 9628 invoked by uid 22791); 7 Oct 2008 01:19:28 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-outbound-2.vmware.com (HELO smtp-outbound-2.vmware.com) (65.115.85.73) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 07 Oct 2008 01:18:46 +0000 Received: from mailhost5.vmware.com (mailhost5.vmware.com [10.16.68.131]) by smtp-outbound-2.vmware.com (Postfix) with ESMTP id 765BFE005; Mon, 6 Oct 2008 18:18:45 -0700 (PDT) Received: from [10.20.92.59] (promb-2s-dhcp59.eng.vmware.com [10.20.92.59]) by mailhost5.vmware.com (Postfix) with ESMTP id 703F9DC05C; Mon, 6 Oct 2008 18:18:45 -0700 (PDT) Message-ID: <48EAB886.8050308@vmware.com> Date: Tue, 07 Oct 2008 01:19:00 -0000 From: Michael Snyder User-Agent: Thunderbird 1.5.0.12 (X11/20080411) MIME-Version: 1.0 To: teawater CC: "gdb-patches@sourceware.org" Subject: Re: [RFA record/replay] Eliminate global variables References: <48EAB5A4.5040003@vmware.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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: 2008-10/txt/msg00194.txt.bz2 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 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 >> >> * 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.")); >> >>