This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Regression loading a tracefile in 7_3
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 <unistd.h>
> 2 #include <stdio.h>
> 3
> 4 int main() {
> 5 int max = 9;
> 6 for (int i=0;i<max;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