From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30029 invoked by alias); 20 May 2011 10:46:24 -0000 Received: (qmail 30015 invoked by uid 22791); 20 May 2011 10:46:23 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 20 May 2011 10:46:08 +0000 Received: (qmail 22374 invoked from network); 20 May 2011 10:46:08 -0000 Received: from unknown (HELO scottsdale.localnet) (pedro@127.0.0.2) by mail.codesourcery.com with ESMTPA; 20 May 2011 10:46:08 -0000 From: Pedro Alves To: gdb@sourceware.org Subject: Re: Regression loading a tracefile in 7_3 Date: Fri, 20 May 2011 10:46:00 -0000 User-Agent: KMail/1.13.5 (Linux/2.6.35-28-generic; KDE/4.6.2; x86_64; ; ) Cc: Marc Khouzam References: In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201105201146.05075.pedro@codesourcery.com> X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2011-05/txt/msg00104.txt.bz2 Hi Marc, I'll take a look. On Friday 20 May 2011 03:03:20, Marc Khouzam wrote: > Hi, > > I believe I'm seeing a regression loading a tracefile in GDB 7.3 > I create a simple tracefile using GDB/gdbserver 7.3 but when I try to load > that tracefile, I get an error about "PC register is not available", which > causes my Eclipse session to abort. This is not happening in 7.2 or 7.2.1. > > > gdb.7.3 a.out > GNU gdb (GDB) 7.2.90.20110519-cvs > (gdb) interpreter-exec mi "-target-select tfile trace.7.3" > ~"Created tracepoint 1 for target's tracepoint 1 at 0x804851f.\n" > ^error,msg="PC register is not available" > > Things might be ok after that, meaning that tstatus seems ok, and > tfind works ok. But the ^error reply is a problem. > > It's caused by a recent added check in regcache.c:regcache_read_pc () > for the return value of regcache_cooked_read_unsigned() > > if (regcache_cooked_read_unsigned (regcache, > gdbarch_pc_regnum (gdbarch), > &raw_val) == REG_UNAVAILABLE) > throw_error (NOT_AVAILABLE_ERROR, _("PC register is not available")); > > I don't know if I'm doing something wrong, but I wanted to report it right > away to avoid having a regression in the 7.3 release. > > Any help appreciated. > > Thanks > > Marc > > Below is how I created the trace file: > > > gdb.7.3 a.out > GNU gdb (GDB) 7.2.90.20110519-cvs > (gdb) target remote :9999 > Remote debugging using :9999 > Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done. > Loaded symbols for /lib/ld-linux.so.2 > 0x00258850 in ?? () from /lib/ld-linux.so.2 > (gdb) l > 1 #include > 2 #include > 3 > 4 int main() { > 5 int max = 9; > 6 for (int i=0;i 7 printf("i is %d\n",i); > 8 sleep(1); > 9 } > 10 return 0; > (gdb) trace 7 > Tracepoint 1 at 0x804851f: file loopfirst.cc, line 7. > (gdb) command > Type commands for breakpoint(s) 1, one per line. > End with a line saying just "end". > >collect $locals > >end > (gdb) tstart > (gdb) b 10 > Breakpoint 2 at 0x8048553: file loopfirst.cc, line 10. > (gdb) c > Continuing. > > Breakpoint 2, main () at loopfirst.cc:10 > 10 return 0; > (gdb) tstop > (gdb) tstatus > Trace stopped by a tstop command. > Collected 9 trace frames. > Trace buffer has 5239739 bytes of 5242880 bytes free (0% full). > Trace will stop if GDB disconnects. > Not looking at any trace frame. > (gdb) tsave trace.7.3 > Trace data saved to file 'trace.7.3'. > > > > -- Pedro Alves