diff options
author | Kevin Buettner <kevinb@redhat.com> | 2001-03-22 02:11:11 +0000 |
---|---|---|
committer | Kevin Buettner <kevinb@redhat.com> | 2001-03-22 02:11:11 +0000 |
commit | c26e1c2b790d52ba3e9ec78798ebf0b6e2ac155a (patch) | |
tree | 572eb013ab14dc87109adc636e187a26df5955e5 /gdb/ia64-tdep.c | |
parent | 272ba48f536c35b918c89ca6bb4046c36e529ea0 (diff) | |
download | gdb-c26e1c2b790d52ba3e9ec78798ebf0b6e2ac155a.zip gdb-c26e1c2b790d52ba3e9ec78798ebf0b6e2ac155a.tar.gz gdb-c26e1c2b790d52ba3e9ec78798ebf0b6e2ac155a.tar.bz2 |
* ia64-tdep.c (fetch_instruction): Warn about slot numbers greater
than two instead of generating an error.
Diffstat (limited to 'gdb/ia64-tdep.c')
-rw-r--r-- | gdb/ia64-tdep.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c index 5efd58a..e46c4b4 100644 --- a/gdb/ia64-tdep.c +++ b/gdb/ia64-tdep.c @@ -492,8 +492,25 @@ fetch_instruction (CORE_ADDR addr, instruction_type *it, long long *instr) long long template; int val; + /* Warn about slot numbers greater than 2. We used to generate + an error here on the assumption that the user entered an invalid + address. But, sometimes GDB itself requests an invalid address. + This can (easily) happen when execution stops in a function for + which there are no symbols. The prologue scanner will attempt to + find the beginning of the function - if the nearest symbol + happens to not be aligned on a bundle boundary (16 bytes), the + resulting starting address will cause GDB to think that the slot + number is too large. + + So we warn about it and set the slot number to zero. It is + not necessarily a fatal condition, particularly if debugging + at the assembly language level. */ if (slotnum > 2) - error("Can't fetch instructions for slot numbers greater than 2."); + { + warning ("Can't fetch instructions for slot numbers greater than 2.\n" + "Using slot 0 instead"); + slotnum = 0; + } addr &= ~0x0f; |