diff options
author | Omair Javaid <omair.javaid@linaro.org> | 2014-01-16 11:00:00 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2014-01-16 10:09:34 +0000 |
commit | 93a360cc5d11a18572239b30d5bae63703012086 (patch) | |
tree | 80edbcf0bdbc2783a287c87fb76aeb23580eb62d | |
parent | f6f6c6790a0f3704575b9e9c87cf55baf215eef3 (diff) | |
download | gdb-93a360cc5d11a18572239b30d5bae63703012086.zip gdb-93a360cc5d11a18572239b30d5bae63703012086.tar.gz gdb-93a360cc5d11a18572239b30d5bae63703012086.tar.bz2 |
Fix testsuite/gdb.dwarf2/dw2-dos-drive.exp on ARM.
This test currently fails on ARM:
(gdb) PASS: gdb.dwarf2/dw2-dos-drive.exp: set breakpoint pending off
break 'z:file.c':func
Cannot access memory at address 0x0
The error is GDB trying to read the prologue at the breakpoint's
address, and failing:
38 throw_error() exceptions.c:444 0x0016728c
37 memory_error() corefile.c:204 0x001d1fcc
36 read_memory() corefile.c:223 0x001d201a
35 read_memory_unsigned_integer() corefile.c:312 0x001d2166
34 arm_skip_prologue() arm-tdep.c:1452 0x00054270
static CORE_ADDR
arm_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
{
...
for (skip_pc = pc; skip_pc < limit_pc; skip_pc += 4)
{
inst = read_memory_unsigned_integer (skip_pc, 4, byte_order_for_code);
The test doesn't execute the compiled object's code, so GDB will try
to read memory from the binary's sections. Instructions on ARM are
4-byte wide, and thus ARM's prologue scanner reads in 4-byte chunks.
As the section 'func' is put at is only 1 byte long, and no other
section is allocated contiguously:
...
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000001 00000000 00000000 00000034 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
...
... the exec target fails the read the 4 bytes.
Fix this by increasing the function's size.
gdb/testsuite/ChangeLog:
2014-01-16 Omair Javaid <Omair.Javaid@linaro.org>
* gdb.dwarf2/dw2-dos-drive.S: Increase text section size to 4
bytes.
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index df8678e..4d2fe91 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-01-16 Omair Javaid <Omair.Javaid@linaro.org> + + * gdb.dwarf2/dw2-dos-drive.S: Increase text section size to 4 + bytes. + 2014-01-15 Maciej W. Rozycki <macro@codesourcery.com> * gdb.base/float.exp: Handle "aarch64*-*-*" targets. diff --git a/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S b/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S index 6e9d360..84006f7 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S +++ b/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S @@ -15,7 +15,8 @@ .text pc_start: - .byte 0 + /* Enough space to fit at least one instruction. */ + .4byte 0 pc_end: .section .debug_info |