This is the mail archive of the gdb-patches@sourceware.cygnus.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RFA: NetBSD/i386 core dump support


I submit the enclosed patch for approval.  

This change enables core dump support on NetBSD/i386 and adds floating
point register support to fetch_core_registers().

2000-03-23  J.T. Conklin  <jtc@redback.com>

	* i386nbsd-nat.c (fetch_core_registers): Read fp registers.
	(i386nbsd_core_fns, _initialize_i386nbsd_nat): Added.

Index: i386nbsd-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/i386nbsd-nat.c,v
retrieving revision 1.1
diff -c -3 -p -r1.1 i386nbsd-nat.c
*** i386nbsd-nat.c	2000/03/22 01:36:31	1.1
--- i386nbsd-nat.c	2000/03/23 23:35:03
*************** store_inferior_registers (regno)
*** 152,158 ****
  struct md_core
  {
    struct reg intreg;
!   struct fpreg freg;
  };
  
  void
--- 152,158 ----
  struct md_core
  {
    struct reg intreg;
!   struct env387 freg;
  };
  
  void
*************** fetch_core_registers (core_reg_sect, cor
*** 167,172 ****
    /* integer registers */
    memcpy (&registers[REGISTER_BYTE (0)], &core_reg->intreg,
  	  sizeof (struct reg));
    /* floating point registers */
!   /* XXX */
  }
--- 167,209 ----
    /* integer registers */
    memcpy (&registers[REGISTER_BYTE (0)], &core_reg->intreg,
  	  sizeof (struct reg));
+ 
    /* floating point registers */
!   RF (FP0_REGNUM,     core_reg->freg.regs[0]);
!   RF (FP0_REGNUM + 1, core_reg->freg.regs[1]);
!   RF (FP0_REGNUM + 2, core_reg->freg.regs[2]);
!   RF (FP0_REGNUM + 3, core_reg->freg.regs[3]);
!   RF (FP0_REGNUM + 4, core_reg->freg.regs[4]);
!   RF (FP0_REGNUM + 5, core_reg->freg.regs[5]);
!   RF (FP0_REGNUM + 6, core_reg->freg.regs[6]);
!   RF (FP0_REGNUM + 7, core_reg->freg.regs[7]);
! 
!   RF (FCTRL_REGNUM,   core_reg->freg.control);
!   RF (FSTAT_REGNUM,   core_reg->freg.status);
!   RF (FTAG_REGNUM,    core_reg->freg.tag);
!   RF (FCS_REGNUM,     core_reg->freg.code_seg);
!   RF (FCOFF_REGNUM,   core_reg->freg.eip);
!   RF (FDS_REGNUM,     core_reg->freg.operand_seg);
!   RF (FDOFF_REGNUM,   core_reg->freg.operand);
!   RF (FOP_REGNUM,     core_reg->freg.opcode);
! 
!   registers_fetched ();
! }
! 
! /* Register that we are able to handle i386nbsd core file formats.
!    FIXME: is this really bfd_target_unknown_flavour? */
! 
! static struct core_fns i386nbsd_core_fns =
! {
!   bfd_target_unknown_flavour,		/* core_flavour */
!   default_check_format,			/* check_format */
!   default_core_sniffer,			/* core_sniffer */
!   fetch_core_registers,			/* core_read_registers */
!   NULL					/* next */
! };
! 
! void
! _initialize_i386nbsd_nat ()
! {
!   add_core_fns (&i386nbsd_core_fns);
  }



-- 
J.T. Conklin
RedBack Networks

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]