From: Victor Kamensky Date: Sun, 2 Nov 2014 21:28:35 +0000 (-0800) Subject: ARM: extract_arm_insn function need to read instrs correctly in be8 case X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=2959fed98cf1b1fd32516194619a5edbdf6a41a3;hp=6ce8c98020188a7585c24db289191c5c10371e58;p=deliverable%2Fbinutils-gdb.git ARM: extract_arm_insn function need to read instrs correctly in be8 case extract_arm_insn function needs to read instructions in gdbarch_byte_order_for_code byte order, because in case armv7b, even data is big endian, instructions are still little endian. Currently function uses gdbarch_byte_order which would be big endian in armv7b case. Because of this issue pretty much all gdb.reverse/ tests are failing with 'Process record does not support instruction' message. Fix is to change gdbarch_byte_order to gdbarch_byte_order_for_code, when passed to extract_unsigned_integer that reads instruction. gdb/ChangeLog: 2014-11-02 Victor Kamensky * arm-tdep.c (extract_arm_insn): Use gdbarch_byte_order_for_code to read arm instruction. --- diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 43520cc23a..9e632a7609 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -13811,7 +13811,7 @@ extract_arm_insn (insn_decode_record *insn_record, uint32_t insn_size) return 1; insn_record->arm_insn = (uint32_t) extract_unsigned_integer (&buf[0], insn_size, - gdbarch_byte_order (insn_record->gdbarch)); + gdbarch_byte_order_for_code (insn_record->gdbarch)); return 0; }