From 074274252f942a2660c310218943f2aa4ef2e237 Mon Sep 17 00:00:00 2001 From: John Gilmore Date: Fri, 11 Oct 1991 00:27:41 +0000 Subject: [PATCH] Read cross-core files on Mach 386. --- gdb/ChangeLog | 6 +++++ gdb/core.c | 2 ++ gdb/mach386-xdep.c | 64 ++++++++++++++++++++++++------------------------------ 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 #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 #include #include @@ -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, ®isters[REGISTER_BYTE (FP0_REGNUM)], core_reg_size); /* FIXME, probably bogus */ -#if 0 +#endif +#ifdef FPC_REGNUM bcopy (&corestr.c_fpu.f_fpstatus.f_ctrl, ®isters[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. */ -- 2.7.4