From owner-freebsd-current Tue Sep 8 16:23:54 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id QAA04965 for freebsd-current-outgoing; Tue, 8 Sep 1998 16:23:54 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from mail.scsn.net (scsn.net [206.25.246.12]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id QAA04957 for ; Tue, 8 Sep 1998 16:23:51 -0700 (PDT) (envelope-from dmaddox@scsn.net) Received: from rhiannon.scsn.net ([209.12.57.59]) by mail.scsn.net (Post.Office MTA v3.1.2 release (PO205-101c) ID# 0-41950U6000L1100S0) with ESMTP id AAA171 for ; Tue, 8 Sep 1998 19:15:33 -0400 Received: (from root@localhost) by rhiannon.scsn.net (8.9.1/8.9.1) id TAA01895 for current@FreeBSD.ORG; Tue, 8 Sep 1998 19:24:10 GMT (envelope-from root) Message-ID: <19980908192409.A1858@scsn.net> Date: Tue, 8 Sep 1998 19:24:09 +0000 From: dmaddox@scsn.net (Donald J. Maddox) To: current@FreeBSD.ORG Subject: Coredumping vmstat Reply-To: dmaddox@scsn.net Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.93.2i Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Vmstat, iostat (and maybe others) are coredumping when compiled ELF (others have reported that they work ok when aout)... The problem in vmstat occurs at line 361: for (i = 0; i < dk_ndrive && ndrives < 4; i++) { if (dr_select[i]) continue; for (cp = defdrives; *cp; cp++) if (strcmp(dr_name[i], *cp) == 0) { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dr_select[i] = 1; ++ndrives; break; This code apparently expects *cp to be 0 at the end of the 'defdrives' list, but instead it gets 0xffffffff, and this causes a bus error. >From gdb: . . . 364 break; (gdb) 357 for (i = 0; i < dk_ndrive && ndrives < 4; i++) { (gdb) 358 if (dr_select[i]) (gdb) 360 for (cp = defdrives; *cp; cp++) (gdb) 361 if (strcmp(dr_name[i], *cp) == 0) { (gdb) 360 for (cp = defdrives; *cp; cp++) (gdb) 361 if (strcmp(dr_name[i], *cp) == 0) { (gdb) 360 for (cp = defdrives; *cp; cp++) (gdb) p *cp $1 = 0x804a375 "wd1" (gdb) s 361 if (strcmp(dr_name[i], *cp) == 0) { (gdb) 360 for (cp = defdrives; *cp; cp++) (gdb) p *cp $2 = 0x804a371 "sd0" (gdb) s 361 if (strcmp(dr_name[i], *cp) == 0) { (gdb) p *cp $3 = 0x804a36d "sd1" (gdb) s 360 for (cp = defdrives; *cp; cp++) (gdb) s 361 if (strcmp(dr_name[i], *cp) == 0) { (gdb) p *cp $4 = 0xffffffff (gdb) . . . Coredump on the next step... Anybody have any idea what's going on here? To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message