gdb

record mode does not support all instructions

Bug #1157098 reported by Christophe Lyon
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro GDB
Fix Released
Undecided
Muhammad Omair Javaid
gdb
New
Undecided
Muhammad Omair Javaid

Bug Description

Currently (as of trunk sources on 2013-03-18), GDB does not support all ARM instructions.

I attach two small examples of this (test1.c and test2.c), as well as the corresponding binaries I compiled with gcc (Ubuntu/Linaro 4.6.3-1ubuntu5), which defaults to Thumb mode code generation. I generated the test?.arm by adding -marm to the GCC command line.

$ gcc -g -o test1.thumb test1.c
$ gcc -g -o test2.thumb test2.c
$ gcc test1.c -g -o test1.arm -marm
$ gcc test2.c -g -o test2.arm -marm

# With test1.thumb:
===========-
$ gdb test1.thumb
GNU gdb (GDB) 7.6.50.20130317-cvs
[....]
(gdb) b main
Breakpoint 1 at 0x8396: file test1.c, line 5.
(gdb) r
Starting program: /home/lyon/test1.thumb

Breakpoint 1, main () at test1.c:5
5 int i=0;
(gdb) b test1.c:8
Breakpoint 2 at 0x83b0: file test1.c, line 8.
(gdb) target record-full
(gdb) c
Continuing.
Process record doesnt support thumb32 instruction 0x300f04f at address 0x8396.
main () at test1.c:5
5 int i=0;
Process record: failed to record execution log.

# With test1.arm:
===========
(gdb) b main
Breakpoint 1 at 0x839c: file test1.c, line 5.
(gdb) r
Starting program: /home/lyon/test1.arm

Breakpoint 1, main () at test1.c:5
5 int i=0;
(gdb) b test1.c:8
Breakpoint 2 at 0x83bc: file test1.c, line 8.
(gdb) target record-full
(gdb) c
Continuing.
Process record doesnt support thumb32 instruction 0x43f0e92d at address 0xb6fea64c.
Process record: failed to record execution log.

[process 13358] #1 stopped.
0xb6fea64c in ?? () from /lib/ld-linux-armhf.so.3

# With test2.thumb:
============
(gdb) b main
Breakpoint 1 at 0x8366: file test2.c, line 5.
(gdb) r
Starting program: /home/lyon/test2.thumb

Breakpoint 1, main () at test2.c:5
5 float i = 15.4;
(gdb) b test2.c:7
Breakpoint 2 at 0x8382: file test2.c, line 7.
(gdb) target record-full
(gdb) c
Continuing.
Process record doesnt support thumb32 instruction 0x7a01edd7 at address 0x836a.
Process record: failed to record execution log.

[process 13495] #1 stopped.
main () at test2.c:6
6 i = i * 3.24;

# With test2.arm:
===========
(gdb) b main
Breakpoint 1 at 0x836c: file test2.c, line 5.
(gdb) r
Starting program: /home/lyon/test2.arm

Breakpoint 1, main () at test2.c:5
5 float i = 15.4;
(gdb) b test2.c:7
Breakpoint 2 at 0x838c: file test2.c, line 7.
(gdb) target record-full
(gdb) c
Continuing.
Process record does not support instruction 0xed5b7a02 at address 0x8374.
Process record: failed to record execution log.

[process 13578] #1 stopped.
main () at test2.c:6
6 i = i * 3.24;

Revision history for this message
Christophe Lyon (christophe-lyon) wrote :
Revision history for this message
Christophe Lyon (christophe-lyon) wrote :
Revision history for this message
Christophe Lyon (christophe-lyon) wrote :
Revision history for this message
Christophe Lyon (christophe-lyon) wrote :
Revision history for this message
Christophe Lyon (christophe-lyon) wrote :
Revision history for this message
Christophe Lyon (christophe-lyon) wrote :
Changed in gdb-linaro:
assignee: nobody → Muhammad Omair Javaid (omair-javaid)
Changed in gdb:
assignee: nobody → Muhammad Omair Javaid (omair-javaid)
Changed in gdb-linaro:
status: New → In Progress
Changed in gdb-linaro:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.