From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24884 invoked by alias); 20 Oct 2008 02:57:57 -0000 Received: (qmail 24875 invoked by uid 22791); 20 Oct 2008 02:57:56 -0000 X-Spam-Check-By: sourceware.org Received: from ti-out-0910.google.com (HELO ti-out-0910.google.com) (209.85.142.185) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 20 Oct 2008 02:57:21 +0000 Received: by ti-out-0910.google.com with SMTP id d10so768400tib.12 for ; Sun, 19 Oct 2008 19:57:18 -0700 (PDT) Received: by 10.110.33.15 with SMTP id g15mr4489746tig.38.1224471438201; Sun, 19 Oct 2008 19:57:18 -0700 (PDT) Received: by 10.110.42.9 with HTTP; Sun, 19 Oct 2008 19:57:18 -0700 (PDT) Message-ID: Date: Mon, 20 Oct 2008 02:57:00 -0000 From: teawater To: "Michael Snyder" Subject: Re: [RFA] Set stop_pc when TARGET_WAITKIND_NO_HISTORY Cc: "gdb-patches@sourceware.org" In-Reply-To: <48FBB3B8.2000804@vmware.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <48FBB3B8.2000804@vmware.com> 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/msg00483.txt.bz2 Thanks! I've checked it in. On Mon, Oct 20, 2008 at 06:24, Michael Snyder wrote: > > Yes, you're right -- good catch! > > Please commit to branch and trunk. > > teawater wrote: >> >> Hi Michael, >> >> I try the 20080930 branch and got: >> (gdb) start >> Temporary breakpoint 1 at 0x80483c1: file 1.c, line 20. >> Starting program: /home/teawater/rec/a.out >> >> Temporary breakpoint 1, main () at 1.c:20 >> 20 int b = 0; >> (gdb) record >> (gdb) n >> 21 int c = 1; >> (gdb) >> 24 printf ("a = %d b = %d c = %d\n", a, b, c); >> (gdb) >> a = 0 b = 0 c = 1 >> 25 b = cool (); >> (gdb) rn >> >> No more reverse-execution history. >> main () at 1.c:20 >> 20 int b = 0; >> (gdb) n >> Cannot find bounds of current function >> >> This is because: >> case TARGET_WAITKIND_NO_HISTORY: >> /* Reverse execution: target ran out of history info. */ >> print_stop_reason (NO_HISTORY, 0); >> stop_stepping (ecs); >> return; >> >> This place doesn't set stop_pc but in step_1: >> if (find_pc_partial_function (stop_pc, &name, >> &tp->step_range_start, >> &tp->step_range_end) == 0) >> error (_("Cannot find bounds of current function")); >> >> So I add code to set stop_pc. I think this bug will affect main tree >> too. So this patch is for both 20080930 branch and main tree. >> >> 2008-10-19 Hui Zhu >> >> * infrun.c (handle_inferior_event): Set "stop_pc" when >> TARGET_WAITKIND_NO_HISTORY. >> >> Thanks, >> Hui >> >> >> ------------------------------------------------------------------------ >> >> --- a/ChangeLog >> +++ b/ChangeLog >> @@ -1,3 +1,8 @@ >> +2008-10-19 Hui Zhu >> + >> + * infrun.c (handle_inferior_event): Set "stop_pc" when >> + TARGET_WAITKIND_NO_HISTORY. >> + >> 2008-10-18 Pedro Alves >> * infrun.c (adjust_pc_after_break): Do nothing if executing in >> --- a/infrun.c >> +++ b/infrun.c >> @@ -2237,6 +2237,7 @@ handle_inferior_event (struct execution_ >> case TARGET_WAITKIND_NO_HISTORY: >> /* Reverse execution: target ran out of history info. */ >> + stop_pc = read_pc (); >> print_stop_reason (NO_HISTORY, 0); >> stop_stepping (ecs); >> return; > >