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 /gdb/frame.c | |
parent | f6f6c6790a0f3704575b9e9c87cf55baf215eef3 (diff) | |
download | binutils-93a360cc5d11a18572239b30d5bae63703012086.zip binutils-93a360cc5d11a18572239b30d5bae63703012086.tar.gz binutils-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.
Diffstat (limited to 'gdb/frame.c')
0 files changed, 0 insertions, 0 deletions