aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Gilmore <gnu@cygnus>1991-10-11 00:27:41 +0000
committerJohn Gilmore <gnu@cygnus>1991-10-11 00:27:41 +0000
commit074274252f942a2660c310218943f2aa4ef2e237 (patch)
treedb70482554ded6d61145d20625016c73c1fff3c3
parent1a3157039006773431d59320d65fdff1fd18ae45 (diff)
downloadgdb-074274252f942a2660c310218943f2aa4ef2e237.zip
gdb-074274252f942a2660c310218943f2aa4ef2e237.tar.gz
gdb-074274252f942a2660c310218943f2aa4ef2e237.tar.bz2
Read cross-core files on Mach 386.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/core.c2
-rw-r--r--gdb/mach386-xdep.c64
3 files changed, 36 insertions, 36 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9cbf1bf..4b511b2 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+Thu Oct 10 17:25:47 1991 John Gilmore (gnu at cygnus.com)
+
+ * mach386-xdep.c: Even when cross-compiling, leave in the
+ core-file reading code.
+ * core.c (get_core_registers): Avoid coredump if no .reg section.
+
Wed Oct 9 17:03:34 1991 John Gilmore (gnu at cygnus.com)
* mipsread.c, coffread.c: initialise TYPE_VPTR_FIELDNO to -1.
diff --git a/gdb/core.c b/gdb/core.c
index c56281b..ad2830c 100644
--- a/gdb/core.c
+++ b/gdb/core.c
@@ -396,6 +396,7 @@ get_core_registers (regno)
char *the_regs;
reg_sec = bfd_get_section_by_name (core_bfd, ".reg");
+ if (!reg_sec) goto cant;
size = bfd_section_size (core_bfd, reg_sec);
the_regs = alloca (size);
if (bfd_get_section_contents (core_bfd, reg_sec, the_regs,
@@ -405,6 +406,7 @@ get_core_registers (regno)
}
else
{
+cant:
fprintf (stderr, "Couldn't fetch registers from core file: %s\n",
bfd_errmsg (bfd_error));
}
diff --git a/gdb/mach386-xdep.c b/gdb/mach386-xdep.c
index 358bb17..754299a 100644
--- a/gdb/mach386-xdep.c
+++ b/gdb/mach386-xdep.c
@@ -3,21 +3,19 @@
This file is part of GDB.
-GDB is free software; you can redistribute it and/or modify
+This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
-GDB is distributed in the hope that it will be useful,
+This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with GDB; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-#if defined (GDB_TARGET_IS_MACH386)
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include <stdio.h>
#include "defs.h"
@@ -27,6 +25,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "signame.h"
#include "gdbcore.h"
+#if defined (GDB_TARGET_IS_MACH386)
+
#include <sys/param.h>
#include <sys/dir.h>
#include <sys/user.h>
@@ -103,10 +103,25 @@ store_inferior_registers (regno)
ptrace (PTRACE_SETFPREGS, inferior_pid, &inferior_fp_registers);
}
-/* Machine-dependent code which would otherwise be in core.c */
+#else /* Not mach386 target. */
+
+/* These functions shouldn't be called when we're cross-debugging. */
+
+void
+fetch_inferior_registers ()
+{
+}
+
+/* ARGSUSED */
+store_inferior_registers (regno)
+ int regno;
+{
+}
+
+#endif /* Not mach386 target. */
+
/* Work with core files, for GDB. */
-
void
fetch_core_registers (core_reg_sect, core_reg_size, which)
char *core_reg_sect;
@@ -123,10 +138,12 @@ fetch_core_registers (core_reg_sect, core_reg_size, which)
break;
case 2:
+#ifdef FP0_REGNUM
bcopy (core_reg_sect,
&registers[REGISTER_BYTE (FP0_REGNUM)],
core_reg_size); /* FIXME, probably bogus */
-#if 0
+#endif
+#ifdef FPC_REGNUM
bcopy (&corestr.c_fpu.f_fpstatus.f_ctrl,
&registers[REGISTER_BYTE (FPC_REGNUM)],
sizeof corestr.c_fpu.f_fpstatus -
@@ -135,28 +152,3 @@ fetch_core_registers (core_reg_sect, core_reg_size, which)
break;
}
}
-#else /* Not mach386 target. */
-
-/* These functions shouldn't be called when we're cross-debugging. */
-
-void
-fetch_inferior_registers ()
-{
-}
-
-/* ARGSUSED */
-store_inferior_registers (regno)
- int regno;
-{
-}
-
-/* ARGSUSED */
-void
-fetch_core_registers (core_reg_sect, core_reg_size, which)
- char *core_reg_sect;
- unsigned core_reg_size;
- int which;
-{
-}
-
-#endif /* Not mach386 target. */