Re: [RFA] Patch to fix "reverse-next" command error

teawater
2009-02-17T03:12:53Z

The following is what I got:

teawater@pek-hzhu:~/tmp/gdb-6.8.50.20090217/gdb$ quilt applied
patches
1-gdbarch.txt
2-target_record_stratum.txt
3-record_target.txt
5-linux-record.txt
6-infrun.txt
7-i386-tdep.txt
8-i386-linux-tdep.txt
9-precord-doc.txt

teawater@pek-hzhu:~/tmp/gdb-6.8.50.20090217/gdb$ ./gdb ~/gdb/a.out
GNU gdb (GDB) 6.8.50.20090217
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Setting up the environment for debugging gdb.
Function "internal_error" not defined.
Make breakpoint pending on future shared library load? (y or [n])
[answered N; input not from terminal]
Function "info_command" not defined.
Make breakpoint pending on future shared library load? (y or [n])
[answered N; input not from terminal]
/home/teawater/tmp/gdb-6.8.50.20090217/gdb/.gdbinit:8: Error in
sourced command file:
No breakpoint number 0.
(gdb) start
During symbol reading, DW_AT_name missing from DW_TAG_base_type.
Temporary breakpoint 1 at 0x8048465: file 2.c, line 4.
Starting program: /home/teawater/gdb/a.out

Temporary breakpoint 1, main () at 2.c:4
4 char* cptr = "Thread 1";
Current language: auto; currently c++
(gdb) list
1 #include <stdio.h>
2 int main()
3 {
4 char* cptr = "Thread 1";
5 int b[2] = {5,8};
6 b[0] = 6; b[1] = 9;
7 printf("Thread 1, loop \n");
8 printf("Thread 2, loop \n");
9 printf("Thread 3, loop \n");
10 return 1;
(gdb) b 10
Breakpoint 2 at 0x80484ac: file 2.c, line 10.
(gdb) record
(gdb) c
Continuing.
Thread 1, loop
Thread 2, loop
Thread 3, loop

Breakpoint 2, main () at 2.c:10
10 return 1;
(gdb) rs
During symbol reading, incomplete CFI data; unspecified registers
(e.g., eax) at 0x8048462.
9 printf("Thread 3, loop \n");
(gdb)
8 printf("Thread 2, loop \n");
(gdb)
7 printf("Thread 1, loop \n");
(gdb)
6 b[0] = 6; b[1] = 9;
(gdb)
5 int b[2] = {5,8};
(gdb)

No more reverse-execution history.
main () at 2.c:4
4 char* cptr = "Thread 1";
(gdb) quit
The program is running. Quit anyway (and kill it)? (y or n) y

teawater@pek-hzhu:~/tmp/gdb-6.8.50.20090217/gdb$ quilt applied
patches
1-gdbarch.txt
2-target_record_stratum.txt
3-record_target.txt
5-linux-record.txt
6-infrun.txt
7-i386-tdep.txt
8-i386-linux-tdep.txt
9-precord-doc.txt
fix-reverse-plt-error.txt

teawater@pek-hzhu:~/tmp/gdb-6.8.50.20090217/gdb$ ./gdb ~/gdb/a.out
GNU gdb (GDB) 6.8.50.20090217
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Setting up the environment for debugging gdb.
Function "internal_error" not defined.
Make breakpoint pending on future shared library load? (y or [n])
[answered N; input not from terminal]
Function "info_command" not defined.
Make breakpoint pending on future shared library load? (y or [n])
[answered N; input not from terminal]
/home/teawater/tmp/gdb-6.8.50.20090217/gdb/.gdbinit:8: Error in
sourced command file:
No breakpoint number 0.
(gdb) start
During symbol reading, DW_AT_name missing from DW_TAG_base_type.
Temporary breakpoint 1 at 0x8048465: file 2.c, line 4.
Starting program: /home/teawater/gdb/a.out

Temporary breakpoint 1, main () at 2.c:4
4 char* cptr = "Thread 1";
Current language: auto; currently c++
(gdb) record
(gdb) b 10
Breakpoint 2 at 0x80484ac: file 2.c, line 10.
(gdb) c
Continuing.
Thread 1, loop
Thread 2, loop
Thread 3, loop

Breakpoint 2, main () at 2.c:10
10 return 1;
(gdb) rs
During symbol reading, incomplete CFI data; unspecified registers
(e.g., eax) at 0x8048462.
9 printf("Thread 3, loop \n");
(gdb)
8 printf("Thread 2, loop \n");
(gdb)
7 printf("Thread 1, loop \n");
(gdb)
6 b[0] = 6; b[1] = 9;
(gdb)
5 int b[2] = {5,8};
(gdb)

No more reverse-execution history.
main () at 2.c:4
4 char* cptr = "Thread 1";
(gdb) quit
The program is running. Quit anyway (and kill it)? (y or n) y

On Mon, Feb 16, 2009 at 23:16, Marc Khouzam <marc.khouzam@ericsson.com> wrote:
>
>
>> -----Original Message-----
>> From: teawater [mailto:teawater@gmail.com]
>> Sent: Monday, February 16, 2009 3:57 AM
>> To: Marc Khouzam
>> Cc: Michael Snyder; Pedro Alves; gdb-patches@sourceware.org
>> Subject: Re: [RFA] Patch to fix "reverse-next" command error
>>
>> Hi Marc,
>>
>> I try it again. This test is still OK with me. Could remove
>> stopped.diff patch and try it again?
>> Or send me a stopped.diff patch?
>
> The stopped.diff patch was just checked in.
> You will actually have to update record.c as it no longer
> compiles with those new changes (small fix needed.)
>
> I updated to today's HEAD and I still get the problem.
> How did you turn on those traces to debug the problem?
>
> Thanks
>
> Marc
>
>