* i386-linux-nat.c (GETREGS_SUPPLIES, supply_gregset,
authorMark Kettenis <kettenis@gnu.org>
Sun, 4 Nov 2001 14:30:42 +0000 (14:30 +0000)
committerMark Kettenis <kettenis@gnu.org>
Sun, 4 Nov 2001 14:30:42 +0000 (14:30 +0000)
fill_gregset): Add support for "orig_eax" register.

gdb/ChangeLog
gdb/i386-linux-nat.c

index e1aac69c44a7722526e7bdea00b8411f699f1bb3..a571e1b2803bfc322e02988f622426ae4bda68a1 100644 (file)
@@ -1,5 +1,8 @@
 2001-11-04  Mark Kettenis  <kettenis@gnu.org>
 
+       * i386-linux-nat.c (GETREGS_SUPPLIES, supply_gregset,
+       fill_gregset): Add support for "orig_eax" register.
+
        Add support for "orig_eax" pseudo register on Linux/x86.
        * i386-linux-tdep.c: Include "inferior.h".
        (i386_linux_register_name, i386_linux_register_byte,
index 94d9ab393bd16a0967e6924f14d821188d8131dc..a9a1fc6ae9da22217f7d3c26c0695704df9cc9ee 100644 (file)
@@ -88,7 +88,7 @@ static int regmap[] =
 /* Which ptrace request retrieves which registers?
    These apply to the corresponding SET requests as well.  */
 #define GETREGS_SUPPLIES(regno) \
-  (0 <= (regno) && (regno) <= 15)
+  ((0 <= (regno) && (regno) <= 15) || (regno) == I386_LINUX_ORIG_EAX_REGNUM)
 #define GETFPREGS_SUPPLIES(regno) \
   (FP0_REGNUM <= (regno) && (regno) <= LAST_FPU_CTRL_REGNUM)
 #define GETFPXREGS_SUPPLIES(regno) \
@@ -306,6 +306,8 @@ supply_gregset (elf_gregset_t *gregsetp)
 
   for (i = 0; i < NUM_GREGS; i++)
     supply_register (i, (char *) (regp + regmap[i]));
+
+  supply_register (I386_LINUX_ORIG_EAX_REGNUM, (char *) (regp + ORIG_EAX));
 }
 
 /* Fill register REGNO (if it is a general-purpose register) in
@@ -321,6 +323,9 @@ fill_gregset (elf_gregset_t *gregsetp, int regno)
   for (i = 0; i < NUM_GREGS; i++)
     if ((regno == -1 || regno == i))
       *(regp + regmap[i]) = *(elf_greg_t *) &registers[REGISTER_BYTE (i)];
+
+  if (regno == -1 || regno == I386_LINUX_ORIG_EAX_REGNUM)
+    read_register_gen (I386_LINUX_ORIG_EAX_REGNUM, (char *) (regp + ORIG_EAX));
 }
 
 #ifdef HAVE_PTRACE_GETREGS