NetBSD Problem Report #10142

Received: (qmail 12539 invoked from network); 17 May 2000 20:07:25 -0000
Message-Id: <200005172006.NAA07036@jtc.redback.com>
Date: Wed, 17 May 2000 13:06:55 -0700 (PDT)
From: <jtc@redback.com>
Reply-To: jtc@redback.com
To: gnats-bugs@gnats.netbsd.org
Subject: powerpc port does not support fp registers in core dumps
X-Send-Pr-Version: 3.95

>Number:         10142
>Category:       port-powerpc
>Synopsis:       powerpc port does not support fp registers in core dumps
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-powerpc-maintainer
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed May 17 20:08:00 +0000 2000
>Closed-Date:    Tue Mar 04 05:23:47 +0000 2003
>Last-Modified:  Tue Mar 04 05:23:47 +0000 2003
>Originator:     
>Release:        NetBSD-current 2000/04/29
>Organization:
J.T. Conklin
RedBack Networks
>Environment:

System: NetBSD powermac 1.4X NetBSD 1.4X (GENERIC) #1: Thu May 11 22:44:11 PDT 2000     jtc@powermac:/usr/src/sys/arch/macppc/compile/GENERIC macppc

>Description:
The powerpc port does not save the contents of floating point
registers in core dumps.

The enclosed patch depends on the patch submitted with port-powerpc/10130,
which adds struct fpreg to powerpc/reg.h.

>How-To-Repeat:

>Fix:
*** OLD/pcb.h	Tue May 16 20:56:27 2000
--- include/pcb.h	Tue May 16 20:57:48 2000
***************
*** 33,38 ****
--- 33,40 ----
  #ifndef	_MACHINE_PCB_H_
  #define	_MACHINE_PCB_H_

+ #include <powerpc/reg.h>
+ 
  typedef int faultbuf[23];

  struct pcb {
***************
*** 50,57 ****
  };

  struct md_coredump {
! 	struct trapframe frame;
! 	/* Need to add FPU regs here */
  };

  #ifdef	_KERNEL
--- 52,59 ----
  };

  struct md_coredump {
! 	struct reg intreg;
! 	struct fpreg freg;
  };

  #ifdef	_KERNEL
*** OLD/reg.h	Tue May 16 21:01:16 2000
--- include/reg.h	Tue May 16 21:04:25 2000
***************
*** 1,5 ****
--- 1,8 ----
  /*	$NetBSD: reg.h,v 1.3 1999/05/03 10:02:19 tsubai Exp $	*/

+ #ifndef _POWERPC_REG_H_
+ #define _POWERPC_REG_H_
+ 
  struct reg {
  	register_t fixreg[32];
  	register_t lr;
***************
*** 13,15 ****
--- 16,20 ----
  	double	r_regs[32];
  	double	r_fpscr;
  };
+ 
+ #endif	/* !_POWERPC_REG_H_ */
*** OLD/vm_machdep.c	Tue May 16 20:58:01 2000
--- powerpc/vm_machdep.c	Tue May 16 20:59:20 2000
***************
*** 221,228 ****
  	chdr->c_seghdrsize = ALIGN(sizeof cseg);
  	chdr->c_cpusize = sizeof md_core;

! 	tf = trapframe(p);
! 	bcopy(tf, &md_core.frame, sizeof md_core.frame);

  	CORE_SETMAGIC(cseg, CORESEGMAGIC, MID_MACHINE, CORE_CPU);
  	cseg.c_addr = 0;
--- 221,235 ----
  	chdr->c_seghdrsize = ALIGN(sizeof cseg);
  	chdr->c_cpusize = sizeof md_core;

! 	/* Save integer registers. */
! 	error = process_read_regs(p, &md_core.intreg);
! 	if (error)
! 		return error;
! 
! 	/* Save floating point registers. */
! 	error = process_read_fpregs(p, &md_core.freg);
! 	if (error)
! 		return error;

  	CORE_SETMAGIC(cseg, CORESEGMAGIC, MID_MACHINE, CORE_CPU);
  	cseg.c_addr = 0;

>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->feedback 
State-Changed-By: mycroft 
State-Changed-When: Wed Apr 17 05:38:31 PDT 2002 
State-Changed-Why:  
Fixed in vm_machdep.c 1.18 on 2000/06/04. 
State-Changed-From-To: feedback->closed 
State-Changed-By: fair 
State-Changed-When: Mon Mar 3 21:05:58 PST 2003 
State-Changed-Why:  
This is fixed and jtc has vanished. 
>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.