* mips-tdep.c (mips_insn16_frame_cache, mips_insn32_frame_sniffer):
[deliverable/binutils-gdb.git] / gdb / remote.c
index 48be84479ec338e13a85d326418cc4365a07bb08..f106c5de738a2c1938002424b6cd4ad8d52a818b 100644 (file)
@@ -334,12 +334,19 @@ init_remote_state (struct gdbarch *gdbarch)
 
   rsa = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct remote_arch_state);
 
-  /* Assume a 1:1 regnum<->pnum table.  */
+  /* Use the architecture to build a regnum<->pnum table, which will be
+     1:1 unless a feature set specifies otherwise.  */
   rsa->regs = GDBARCH_OBSTACK_CALLOC (gdbarch, NUM_REGS, struct packet_reg);
   for (regnum = 0; regnum < NUM_REGS; regnum++)
     {
       struct packet_reg *r = &rsa->regs[regnum];
-      r->pnum = regnum;
+
+      if (register_size (current_gdbarch, regnum) == 0)
+       /* Do not try to fetch zero-sized (placeholder) registers.  */
+       r->pnum = -1;
+      else
+       r->pnum = gdbarch_remote_register_number (gdbarch, regnum);
+
       r->regnum = regnum;
     }
 
This page took 0.026386 seconds and 4 git commands to generate.