This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 2/2] GDB process record and reverse debugging improvements for arm*-linux*
- From: Yao Qi <yao at codesourcery dot com>
- To: Omair Javaid <omair dot javaid at linaro dot org>
- Cc: <gdb-patches at sourceware dot org>, Patch Tracking <patches at linaro dot org>
- Date: Thu, 24 Oct 2013 10:30:55 +0800
- Subject: Re: [PATCH 2/2] GDB process record and reverse debugging improvements for arm*-linux*
- Authentication-results: sourceware.org; auth=none
- References: <CANW4E-0qP8iMVh1czWuOjhwfH9Q-2aJUG=2wEzDX1mLXy3avAw at mail dot gmail dot com>
On 10/24/2013 08:09 AM, Omair Javaid wrote:
+/* Record all registers but PC register for process-record. */
+
+static int
+arm_all_but_pc_registers_record (struct regcache *regcache)
+{
+ if (record_full_arch_list_add_reg (regcache, ARM_R0_REGNUM))
+ return -1;
+ if (record_full_arch_list_add_reg (regcache, ARM_R1_REGNUM))
+ return -1;
+ if (record_full_arch_list_add_reg (regcache, ARM_R2_REGNUM))
+ return -1;
+ if (record_full_arch_list_add_reg (regcache, ARM_R3_REGNUM))
+ return -1;
+ if (record_full_arch_list_add_reg (regcache, ARM_R4_REGNUM))
+ return -1;
+ if (record_full_arch_list_add_reg (regcache, ARM_R5_REGNUM))
+ return -1;
+ if (record_full_arch_list_add_reg (regcache, ARM_R6_REGNUM))
+ return -1;
+ if (record_full_arch_list_add_reg (regcache, ARM_R7_REGNUM))
+ return -1;
+ if (record_full_arch_list_add_reg (regcache, ARM_R8_REGNUM))
+ return -1;
+ if (record_full_arch_list_add_reg (regcache, ARM_R9_REGNUM))
+ return -1;
+ if (record_full_arch_list_add_reg (regcache, ARM_R10_REGNUM))
+ return -1;
+ if (record_full_arch_list_add_reg (regcache, ARM_R11_REGNUM))
+ return -1;
+ if (record_full_arch_list_add_reg (regcache, ARM_R12_REGNUM))
+ return -1;
+ if (record_full_arch_list_add_reg (regcache, ARM_R13_REGNUM))
+ return -1;
+ if (record_full_arch_list_add_reg (regcache, ARM_R14_REGNUM))
+ return -1;
+ if (record_full_arch_list_add_reg (regcache, ARM_PS_REGNUM))
+ return -1;
+
+ return 0;
+}
+
Can't we use loop?
/* Provide a prototype to silence -Wmissing-prototypes. */
Index: gdb/arm-tdep.h
===================================================================
RCS file: /cvs/src/src/gdb/arm-tdep.h,v
retrieving revision 1.59
diff -u -p -r1.59 arm-tdep.h
--- gdb/arm-tdep.h 19 Apr 2013 15:09:45 -0000 1.59
+++ gdb/arm-tdep.h 23 Oct 2013 23:10:11 -0000
@@ -60,7 +60,24 @@ enum gdb_regnum {
ARM_NUM_ARG_REGS = 4,
ARM_LAST_ARG_REGNUM = ARM_A4_REGNUM,
ARM_NUM_FP_ARG_REGS = 4,
- ARM_LAST_FP_ARG_REGNUM = ARM_F3_REGNUM
+ ARM_LAST_FP_ARG_REGNUM = ARM_F3_REGNUM,
+
+ /* GPRs register numbers in sequence. */
+ ARM_R0_REGNUM = ARM_A1_REGNUM,
+ ARM_R1_REGNUM = ARM_R0_REGNUM + 1,
+ ARM_R2_REGNUM = ARM_R1_REGNUM + 1,
+ ARM_R3_REGNUM = ARM_R2_REGNUM + 1,
+ ARM_R4_REGNUM = ARM_R3_REGNUM + 1,
+ ARM_R5_REGNUM = ARM_R4_REGNUM + 1,
+ ARM_R6_REGNUM = ARM_R5_REGNUM + 1,
+ ARM_R7_REGNUM = ARM_R6_REGNUM + 1,
+ ARM_R8_REGNUM = ARM_R7_REGNUM + 1,
+ ARM_R9_REGNUM = ARM_R8_REGNUM + 1,
+ ARM_R10_REGNUM = ARM_R9_REGNUM + 1,
+ ARM_R11_REGNUM = ARM_R10_REGNUM + 1,
+ ARM_R12_REGNUM = ARM_R11_REGNUM + 1,
+ ARM_R13_REGNUM = ARM_R12_REGNUM + 1,
+ ARM_R14_REGNUM = ARM_R13_REGNUM + 1
};
... then these macro are not needed.
--
Yao (éå)