Minor rewording of message containing name of program that generated a
authorFred Fish <fnf@specifix.com>
Tue, 12 Nov 1991 03:23:32 +0000 (03:23 +0000)
committerFred Fish <fnf@specifix.com>
Tue, 12 Nov 1991 03:23:32 +0000 (03:23 +0000)
core file (core.c), permanently remove the register_addr() stub (elfread.c),
move a misplaced #endif (procfs.c), and add fetch_core_registers func for
core file support (procfs.c).

gdb/ChangeLog
gdb/core.c
gdb/elfread.c
gdb/procfs.c

index e5c8bf38652bae91f6d49fa44cfeeefa44e69247..fdcea0c5dbef56d533fbac6c4f5574c6c47e85cb 100644 (file)
@@ -1,3 +1,15 @@
+Mon Nov 11 19:14:31 1991  Fred Fish  (fnf at cygnus.com)
+
+       * core.c:  Minor rewording of message to user containing name of
+       (and possibly arguments to) the program that generated a core
+       file.
+
+       * elfread.c:  Remove the register_addr() stub now that it is no
+       longer needed.
+
+       * procfs.c:  Move misplaced #endif for ATTACH_DETACH.  Add new
+       fetch_core_registers() function for core file support.
+
 Sat Nov  9 13:37:57 1991  Fred Fish  (fnf at cygnus.com)
 
        * dwarfread.c (dwarf_psymtab_to_symtab):  Remove leftover call
index ba1299268dfc422a4e6692d34bacbbbe6debb4d6..8ff3119bb3b99ed55946ceb49742b2c8494ff138 100644 (file)
@@ -155,7 +155,7 @@ core_open (filename, from_tty)
 
   p = bfd_core_file_failing_command (core_bfd);
   if (p)
-    printf ("Core file invoked as `%s'.\n", p);
+    printf ("Core was generated by `%s'.\n", p);
 
   siggy = bfd_core_file_failing_signal (core_bfd);
   if (siggy > 0)
index b442e65ca623c41672d6ee922456819db983b728..49b5d3415f5b137a332d7359f9348f76ad7cd699 100644 (file)
@@ -63,23 +63,6 @@ struct elfinfo {
   unsigned int lnsize;         /* Size of dwarf line number section */
 };
 
-#ifndef REGISTER_U_ADDR
-
-/* FIXME - crude hack to resolve undefined global.  If REGISTER_U_ADDR
-   is defined, this function gets compiled into coredep.c.  If not,
-   it is left unresolved, so we need to resolve it until corefile
-   support for ELF corefiles is finished. */
-
-unsigned int
-DEFUN(register_addr, (regno, blockend),
-      int regno AND
-      int blockend)
-{
-       error ("Fetching registers from corefiles unimplemented.");
-}
-
-#endif
-
 /* We are called once per section from elf_symfile_read.  We
    need to examine each section we are passed, check to see
    if it is something we are interested in processing, and
index a2773699538577cf3b928f91a477c80117d34720..c745997273df1d9dcd9e0a2b4cd5d6da91530f17 100644 (file)
@@ -634,6 +634,8 @@ DEFUN(detach, (signal),
   attach_flag = 0;
 }
 
+#endif /* ATTACH_DETACH */
+
 /*
 
 GLOBAL FUNCTION
@@ -873,7 +875,66 @@ DEFUN_VOID(fetch_inferior_registers)
 #endif
 }
 
-#endif /* ATTACH_DETACH */
+/*
+
+GLOBAL FUNCTION
+
+       fetch_core_registers -- fetch current registers from core file data
+
+SYNOPSIS
+
+       void fetch_core_registers (char *core_reg_sect, unsigned core_reg_size,
+                                  int which)
+
+DESCRIPTION
+
+       Read the values of either the general register set (WHICH equals 0)
+       or the floating point register set (WHICH equals 2) from the core
+       file data (pointed to by CORE_REG_SECT), and update gdb's idea of
+       their current values.  The CORE_REG_SIZE parameter is ignored.
+
+NOTES
+
+       Use the indicated sizes to validate the gregset and fpregset
+       structures.
+*/
+
+void
+fetch_core_registers (core_reg_sect, core_reg_size, which)
+  char *core_reg_sect;
+  unsigned core_reg_size;
+  int which;
+{
+
+  if (which == 0)
+    {
+      if (core_reg_size != sizeof (pi.gregset))
+       {
+         warning ("wrong size gregset struct in core file");
+       }
+      else
+       {
+         (void) memcpy ((char *) &pi.gregset, core_reg_sect,
+                        sizeof (pi.gregset));
+         supply_gregset (&pi.gregset);
+       }
+    }
+  else if (which == 2)
+    {
+      if (core_reg_size != sizeof (pi.fpregset))
+       {
+         warning ("wrong size fpregset struct in core file");
+       }
+      else
+       {
+         (void) memcpy ((char *) &pi.fpregset, core_reg_sect,
+                        sizeof (pi.fpregset));
+#if defined (FP0_REGNUM)
+         supply_fpregset (&pi.fpregset);
+#endif
+       }
+    }
+}
 
 /*