Fix relocation of jump and call instructions (used when inserting fast
tracepoints). 2011-03-18 Kwok Cheung Yeung <kcy@codesourcery.com> * amd64-tdep.c (amd64_relocate_instruction): Fix ordering of arguments to store_signed_integer. Add debug message when relocating CALL instructions. Fix formatting of debug message. * i386-tdep.c (i386_relocate_instruction): Ditto.
This commit is contained in:
parent
6935e6051c
commit
f4a1794a6c
|
@ -1,3 +1,10 @@
|
|||
2011-03-18 Kwok Cheung Yeung <kcy@codesourcery.com>
|
||||
|
||||
* amd64-tdep.c (amd64_relocate_instruction): Fix ordering of arguments
|
||||
to store_signed_integer. Add debug message when relocating CALL
|
||||
instructions. Fix formatting of debug message.
|
||||
* i386-tdep.c (i386_relocate_instruction): Ditto.
|
||||
|
||||
2011-03-17 Joel Brobecker <brobecker@gnat.com>
|
||||
|
||||
* target.h (struct target_ops): Remove to_lookup_symbol field.
|
||||
|
|
|
@ -1575,7 +1575,14 @@ amd64_relocate_instruction (struct gdbarch *gdbarch,
|
|||
/* Adjust the destination offset. */
|
||||
rel32 = extract_signed_integer (insn + 1, 4, byte_order);
|
||||
newrel = (oldloc - *to) + rel32;
|
||||
store_signed_integer (insn + 1, 4, newrel, byte_order);
|
||||
store_signed_integer (insn + 1, 4, byte_order, newrel);
|
||||
|
||||
if (debug_displaced)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"Adjusted insn rel32=%s at %s to"
|
||||
" rel32=%s at %s\n",
|
||||
hex_string (rel32), paddress (gdbarch, oldloc),
|
||||
hex_string (newrel), paddress (gdbarch, *to));
|
||||
|
||||
/* Write the adjusted jump into its displaced location. */
|
||||
append_insns (to, 5, insn);
|
||||
|
@ -1598,11 +1605,11 @@ amd64_relocate_instruction (struct gdbarch *gdbarch,
|
|||
{
|
||||
rel32 = extract_signed_integer (insn + offset, 4, byte_order);
|
||||
newrel = (oldloc - *to) + rel32;
|
||||
store_signed_integer (insn + offset, 4, newrel, byte_order);
|
||||
store_signed_integer (insn + offset, 4, byte_order, newrel);
|
||||
if (debug_displaced)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"Adjusted insn rel32=0x%s at 0x%s to"
|
||||
" rel32=0x%s at 0x%s\n",
|
||||
"Adjusted insn rel32=%s at %s to"
|
||||
" rel32=%s at %s\n",
|
||||
hex_string (rel32), paddress (gdbarch, oldloc),
|
||||
hex_string (newrel), paddress (gdbarch, *to));
|
||||
}
|
||||
|
|
|
@ -747,7 +747,14 @@ i386_relocate_instruction (struct gdbarch *gdbarch,
|
|||
/* Adjust the destination offset. */
|
||||
rel32 = extract_signed_integer (insn + 1, 4, byte_order);
|
||||
newrel = (oldloc - *to) + rel32;
|
||||
store_signed_integer (insn + 1, 4, newrel, byte_order);
|
||||
store_signed_integer (insn + 1, 4, byte_order, newrel);
|
||||
|
||||
if (debug_displaced)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"Adjusted insn rel32=%s at %s to"
|
||||
" rel32=%s at %s\n",
|
||||
hex_string (rel32), paddress (gdbarch, oldloc),
|
||||
hex_string (newrel), paddress (gdbarch, *to));
|
||||
|
||||
/* Write the adjusted jump into its displaced location. */
|
||||
append_insns (to, 5, insn);
|
||||
|
@ -766,11 +773,11 @@ i386_relocate_instruction (struct gdbarch *gdbarch,
|
|||
{
|
||||
rel32 = extract_signed_integer (insn + offset, 4, byte_order);
|
||||
newrel = (oldloc - *to) + rel32;
|
||||
store_signed_integer (insn + offset, 4, newrel, byte_order);
|
||||
store_signed_integer (insn + offset, 4, byte_order, newrel);
|
||||
if (debug_displaced)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"Adjusted insn rel32=0x%s at 0x%s to"
|
||||
" rel32=0x%s at 0x%s\n",
|
||||
"Adjusted insn rel32=%s at %s to"
|
||||
" rel32=%s at %s\n",
|
||||
hex_string (rel32), paddress (gdbarch, oldloc),
|
||||
hex_string (newrel), paddress (gdbarch, *to));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue