Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Dec 1998 15:56:34 +0100 (MET)
From:      Ralf Schmitt <schmr000@mail.Uni-Mainz.de>
To:        freebsd-bugs@FreeBSD.ORG
Subject:   HelloWorld segfaults
Message-ID:  <Pine.OSF.3.95.981225155059.9194A-100000@omalley.zdv.Uni-Mainz.DE>

next in thread | raw e-mail | index | archive | help
Hi,
I think i found a rather serious bug in FreeBSD 3.0 (3.0-RELEASE
not current)...when i compile a short hello world program with the 
executable written to an ext2fs partition, i get segfaults when starting
the program...
/var/log/messages says:
Dec 25 00:11:36 myname /kernel: pid 523 (a.out), uid 1000: exited on signal 10    
(or signal 4 or 11)

A short log of a shell session is included as well as my kernel configuration 
file...

Thanks and merry christmas,
- Ralf


Here is a short shell session:
==============================


bash-2.01# uname -a
FreeBSD myname.my.domain 3.0-RELEASE FreeBSD 3.0-RELEASE #1: Tue Dec 22 13:15:28 CET 1998     root@myname.my.domain:/usr/src/sys/compile/MYKERNEL  i386
bash-2.01# mount -p
/dev/wd0s4a	/	ufs rw	1 1
/dev/wd0s4f	/usr	ufs rw	2 2
/dev/wd0s4e	/var	ufs rw	2 2
procfs	/proc	procfs rw	0 0
mfs:23	/tmp	mfs rw,async	0 0
/dev/da0s7	/linuxhome	ext2fs rw	2 2
bash-2.01# g++ -v
 cc -v
gcc version 2.7.2.1
bash-2.01# pwd
/root
bash-2.01# cat hello.cc 
#include <stdio.h>

int main(int argc, char **argv)
{
	printf ("Hello World...\n");
	return 0;
}
bash-2.01# g++ hello.cc 
bash-2.01# ./a.out 
Hello World...
bash-2.01# cp a.out /linuxhome/
bash-2.01# /linuxhome/a.out
Hello World...
bash-2.01# g++ hello.cc -o /linuxhome/a.out
bash-2.01# /linuxhome/a.out
Segmentation fault (core dumped)
bash-2.01# g++ hello.cc -o /linuxhome/a.out -g
bash-2.01# gdb /linuxhome/a.out
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.16 (i386-unknown-freebsd), Copyright 1996 Free Software Foundation, Inc...BFD: /linuxhome/a.out: invalid string offset 7237490 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 1600061537 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 1694524526 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 134520236 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 134520244 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 134520252 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 134520260 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 2644522495 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 2645042687 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 2645304831 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 2645566975 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 2645829119 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 2646091263 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 2646353407 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 2646615551 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 2646877695 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 1474660693 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 495520949 >= 519 for section `.strtab'
BFD: /linuxhome/a.out: invalid string offset 134520196 >= 519 for section `.strtab'

(gdb) run
Starting program: /linuxhome/a.out 

Program received signal SIGSEGV, Segmentation fault.
0x804854c in _init ()
(gdb) backtrace
#0  0x804854c in _init ()
#1  0x8048629 in _start ()
(gdb) quit
The program is running.  Quit anyway (and kill it)? (y or n) y
bash-2.01# g++ -c hello.cc 
bash-2.01# g++ -c hello.cc -o /linuxhome/hello.o
bash-2.01# cmp hello.o /linuxhome/hello.o 
bash-2.01# g++ hello.o
bash-2.01# ./a.out
Hello World...
bash-2.01# g++ /linuxhome/hello.o -o /linuxhome/a.out
bash-2.01# /linuxhome/a.out
Segmentation fault (core dumped)
bash-2.01# 


=======================================================================



#
# GENERIC -- Generic machine with WD/AHx/NCR/BTx family disks
#
# For more information read the handbook part System Administration -> 
# Configuring the FreeBSD Kernel -> The Configuration File. 
# The handbook is available in /usr/share/doc/handbook or online as
# latest version from the FreeBSD World Wide Web server 
# <URL:http://www.FreeBSD.ORG/>;
#
# An exhaustive list of options and more detailed explanations of the 
# device lines is present in the ./LINT configuration file. If you are 
# in doubt as to the purpose or necessity of a line, check first in LINT.
#
#	$Id: GENERIC,v 1.125 1998/10/16 01:30:11 obrien Exp $

machine		"i386"
cpu		"I386_CPU"
cpu		"I486_CPU"
cpu		"I586_CPU"
cpu		"I686_CPU"
ident		MYKERNEL
maxusers	32

#options		MATH_EMULATE		#Support for x87 emulation
options		INET			#InterNETworking
options		FFS			#Berkeley Fast Filesystem
options		FFS_ROOT		#FFS usable as root device [keep this!]
options		MFS			#Memory Filesystem
options		MFS_ROOT		#MFS usable as root device, "MFS" req'ed
options		NFS			#Network Filesystem
options		NFS_ROOT		#NFS usable as root device, "NFS" req'ed
options		MSDOSFS			#MSDOS Filesystem
options		"CD9660"		#ISO 9660 Filesystem
options		"CD9660_ROOT"		#CD-ROM usable as root. "CD9660" req'ed
options		PROCFS			#Process filesystem

options		"EXT2FS"			

options		"COMPAT_43"		#Compatible with BSD 4.3 [KEEP THIS!]
options		SCSI_DELAY=3000		#Be pessimistic about Joe SCSI device
options		UCONSOLE		#Allow users to grab the console
options		FAILSAFE		#Be conservative
options		USERCONFIG		#boot -c editor
options		VISUAL_USERCONFIG	#visual boot -c editor

config		kernel	root on wd0

controller	isa0
controller	eisa0
controller	pci0

controller	fdc0	at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
disk		fd0	at fdc0 drive 0
disk		fd1	at fdc0 drive 1
# Unless you know very well what you're doing, leave ft0 at drive 2, or
# remove the line entirely if you don't need it.  Trying to configure
# it on another unit might cause surprises, see PR kern/7176.
tape		ft0	at fdc0 drive 2

options		"CMD640"	# work around CMD640 chip deficiency
controller	wdc0	at isa? port "IO_WD1" bio irq 14 vector wdintr
disk		wd0	at wdc0 drive 0
disk		wd1	at wdc0 drive 1

controller	wdc1	at isa? port "IO_WD2" bio irq 15 vector wdintr
disk		wd2	at wdc1 drive 0
disk		wd3	at wdc1 drive 1

options		ATAPI		#Enable ATAPI support for IDE bus
options		ATAPI_STATIC	#Don't do it as an LKM
device		wcd0		#IDE CD-ROM
device		wfd0		#IDE Floppy (e.g. LS-120)

# A single entry for any of these controllers (ncr, ahb, ahc, amd) is
# sufficient for any number of installed devices.
#controller	ncr0
#controller	amd0
#controller	ahb0
controller	ahc0
controller	isp0

# This controller offers a number of configuration options, too many to
# document here  - see the LINT file in this directory and look up the
# dpt0 entry there for much fuller documentation on this.
controller      dpt0

controller	adv0	at isa? port ? cam irq ?
controller	adw0
#controller	bt0	at isa? port ? cam irq ?
#controller	aha0	at isa? port ? cam irq ?
#controller	uha0	at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr
#controller	aic0	at isa? port 0x340 bio irq 11 vector aicintr
#controller	nca0	at isa? port 0x1f88 bio irq 10 vector ncaintr
#controller	nca1	at isa? port 0x350 bio irq 5 vector ncaintr
#controller	sea0	at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr

controller	scbus0

device		da0

device		sa0

device		pass0

device		cd0	#Only need one of these, the code dynamically grows
device		sd0

device		wt0	at isa? port 0x300 bio irq 5 drq 1 vector wtintr
#device		mcd0	at isa? port 0x300 bio irq 10 vector mcdintr

#controller	matcd0	at isa? port 0x230 bio

#device		scd0	at isa? port 0x230 bio

# syscons is the default console driver, resembling an SCO console
device		sc0	at isa? port "IO_KBD" conflicts tty irq 1 vector scintr
# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device		vt0	at isa? port "IO_KBD" conflicts tty irq 1 vector pcrint
#options		XSERVER			# support for X server
#options		FAT_CURSOR		# start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
#options		PCVT_SCANSET=2		# IBM keyboards are non-std

device		npx0	at isa? port "IO_NPX" irq 13 vector npxintr

#
# Laptop support (see LINT for more options)
#
device		apm0    at isa?	disable	flags 0x31 # Advanced Power Management

# PCCARD (PCMCIA) support
#controller	card0
#device		pcic0	at card?
#device		pcic1	at card?

device		sio0	at isa? port "IO_COM1" flags 0x10 tty irq 4 vector siointr
device		sio1	at isa? port "IO_COM2" tty irq 3 vector siointr
device		sio2	at isa? disable port "IO_COM3" tty irq 5 vector siointr
device		sio3	at isa? disable port "IO_COM4" tty irq 9 vector siointr

device		lpt0	at isa? port? tty irq 7 vector lptintr

device		psm0	at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr

# Order is important here due to intrusive probes, do *not* alphabetize
# this list of network interfaces until the probes have been fixed.
# Right now it appears that the ie0 must be probed before ep0. See
# revision 1.20 of this file.
#device de0
#device fxp0
device tl0
device tx0
#device vx0
device xl0

#device ed0 at isa? port 0x280 net irq 10 iomem 0xd8000 vector edintr
device ie0 at isa? port 0x300 net irq 10 iomem 0xd0000 vector ieintr
device ep0 at isa? port 0x300 net irq 10 vector epintr
device ex0 at isa? port? net irq? vector exintr
#device fe0 at isa? port 0x300 net irq ? vector feintr
device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr
#device lnc0 at isa? port 0x280 net irq 10 drq 0 vector lncintr
#device ze0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zeintr
#device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zpintr
device cs0 at isa? port 0x300 net irq ? vector csintr

pseudo-device	loop
pseudo-device	ether
pseudo-device	sl	1
pseudo-device	ppp	1
pseudo-device	tun	1
pseudo-device	pty	16
pseudo-device	gzip		# Exec gzipped a.out's
pseudo-device	vn

# KTRACE enables the system-call tracing facility ktrace(2).
# This adds 4 KB bloat to your kernel, and slightly increases
# the costs of each syscall.
options		KTRACE		#kernel tracing

# This provides support for System V shared memory.
#
options		SYSVSHM

#  The `bpfilter' pseudo-device enables the Berkeley Packet Filter.  Be
#  aware of the legal and administrative consequences of enabling this
#  option.  The number of devices determines the maximum number of
#  simultaneous BPF clients programs runnable.
#pseudo-device	bpfilter	4	#Berkeley packet filter







To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.OSF.3.95.981225155059.9194A-100000>