* ia64-tdep.c (ia64_memory_insert_breakpoint): Check the slotnum

and the type of instruction before deciding which slot to save
        in the breakpoint shadown contents.
This commit is contained in:
Joel Brobecker 2009-09-28 23:47:02 +00:00
parent 66d990c749
commit 35ec2a3e66
2 changed files with 12 additions and 6 deletions

View File

@ -1,3 +1,9 @@
2009-09-28 Joel Brobecker <brobecker@adacore.com>
* ia64-tdep.c (ia64_memory_insert_breakpoint): Check the slotnum
and the type of instruction before deciding which slot to save
in the breakpoint shadown contents.
2009-09-28 Doug Evans <dje@google.com>
* linux-nat.c (status_to_str): Handle TRAP_IS_SYSCALL.

View File

@ -635,6 +635,12 @@ ia64_memory_insert_breakpoint (struct gdbarch *gdbarch,
return val;
}
/* Check for L type instruction in slot 1, if present then bump up the slot
number to the slot 2. */
template = extract_bit_field (bundle, 0, 5);
if (slotnum == 1 && template_encoding_table[template][slotnum] == L)
slotnum = 2;
/* Slot number 2 may skip at most 2 bytes at the beginning. */
bp_tgt->shadow_len = BUNDLE_LEN - 2;
@ -657,12 +663,6 @@ ia64_memory_insert_breakpoint (struct gdbarch *gdbarch,
return val;
}
/* Check for L type instruction in slot 1, if present then bump up the slot
number to the slot 2. */
template = extract_bit_field (bundle, 0, 5);
if (slotnum == 1 && template_encoding_table[template][slotnum] == L)
slotnum = 2;
/* Breakpoints already present in the code will get deteacted and not get
reinserted by bp_loc_is_permanent. Multiple breakpoints at the same
location cannot induce the internal error as they are optimized into