* ia64-tdep.c (fetch_instruction): Warn about slot numbers greater
than two instead of generating an error.
This commit is contained in:
parent
272ba48f53
commit
c26e1c2b79
|
@ -1,3 +1,8 @@
|
||||||
|
2001-03-21 Kevin Buettner <kevinb@redhat.com>
|
||||||
|
|
||||||
|
* ia64-tdep.c (fetch_instruction): Warn about slot numbers greater
|
||||||
|
than two instead of generating an error.
|
||||||
|
|
||||||
2001-03-21 Jim Blandy <jimb@redhat.com>
|
2001-03-21 Jim Blandy <jimb@redhat.com>
|
||||||
|
|
||||||
* cp-valprint.c: Reformat to bring into line with GNU coding
|
* cp-valprint.c: Reformat to bring into line with GNU coding
|
||||||
|
|
|
@ -492,8 +492,25 @@ fetch_instruction (CORE_ADDR addr, instruction_type *it, long long *instr)
|
||||||
long long template;
|
long long template;
|
||||||
int val;
|
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)
|
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;
|
addr &= ~0x0f;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue