From owner-freebsd-emulation Tue Nov 25 20:46:00 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id UAA16686 for emulation-outgoing; Tue, 25 Nov 1997 20:46:00 -0800 (PST) (envelope-from owner-freebsd-emulation) Received: from word.smith.net.au (vh1.gsoft.com.au [203.38.152.122]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id UAA16675 for ; Tue, 25 Nov 1997 20:45:53 -0800 (PST) (envelope-from mike@word.smith.net.au) Received: from word (localhost [127.0.0.1]) by word.smith.net.au (8.8.7/8.8.5) with ESMTP id PAA02499; Wed, 26 Nov 1997 15:11:12 +1030 (CST) Message-Id: <199711260441.PAA02499@word.smith.net.au> X-Mailer: exmh version 2.0zeta 7/24/97 To: Thomas Gellekum cc: emulation@FreeBSD.ORG Subject: Re: Problems with spicecad for Linux In-reply-to: Your message of "20 Nov 1997 09:43:17 BST." <87aff0dkgq.fsf@ghpc6.ihf.rwth-aachen.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 26 Nov 1997 15:11:12 +1030 From: Mike Smith Sender: owner-freebsd-emulation@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > sorry if you're receiving this mail a second time. Looks like there > was a problem with the lists yesterday. Sorry for the delay in responding. > Anyway, I'm trying to run spicecad-1.5 for Linux on 2.2.5-STABLE. The > binary crashes short after startup after a SIGBUS. Output from ktrace > looks like this: ... > 2566 spicecad-linux CALL ioctl(0,0x5401 ,0xefbfd09c) > 2566 spicecad-linux RET ioctl 0 > 2566 spicecad-linux CALL getpid > 2566 spicecad-linux RET getpid 2566/0xa06 These two look OK. > 2566 spicecad-linux CALL ktrace(0x84f9000) > 2566 spicecad-linux RET ktrace 139431936/0x84f9000 > 2566 spicecad-linux CALL obs_vread(0xb,0xefbfd084,0xefbfd074) > 2566 spicecad-linux RET obs_vread 0 Yup, register a SEGV handler. > 2566 spicecad-linux PSIG SIGSEGV caught handler=0x8058180 mask=0x0 code=0xc > 2566 spicecad-linux CALL obs_vread(0xb,0xefbfd020,0xefbfd010) > 2566 spicecad-linux RET obs_vread 0 > 2566 spicecad-linux PSIG SIGSEGV caught handler=0x8058180 mask=0x0 code=0xc > 2566 spicecad-linux CALL obs_vread(0xb,0xefbfd020,0xefbfd010) > 2566 spicecad-linux RET obs_vread 0 > 2566 spicecad-linux PSIG SIGSEGV caught handler=0x8058180 mask=0x0 code=0xc > 2566 spicecad-linux CALL obs_vread(0xb,0xefbfd020,0xefbfd010) > 2566 spicecad-linux RET obs_vread 0 > 2566 spicecad-linux PSIG SIGSEGV caught handler=0x8058180 mask=0x0 code=0xc > 2566 spicecad-linux CALL obs_vread(0xb,0xefbfd020,0xefbfd010) > 2566 spicecad-linux RET obs_vread 0 Catch and re-register several times. > 2566 spicecad-linux PSIG SIGBUS SIG_DFL And then SIGBUS. It's possible that it was expecting a SEGV here as well, but got SIGBUS due to a difference of opinion between FreeBSD and Linux. Without knowing why it got the signal, it's fairly impossible to tell though. You should look at the trap() function in i386/i386/ trap.c and look at where it returns SIGBUS to the process, and then compare this with Linux's reasons. mike