delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/10/22/20:01:07

From: ryot AT bigfoot DOT com (George Ryot)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: a K-R program doesn't work only with DJGPP
Message-ID: <3815f2df.20207061@news.clara.net>
References: <7uq3tl$i53$1 AT fe2 DOT cs DOT interbusiness DOT it>
X-Newsreader: Forte Agent 1.5/32.452
X-No-Archive: yes
MIME-Version: 1.0
Lines: 60
Date: Fri, 22 Oct 1999 23:30:45 GMT
NNTP-Posting-Host: 195.8.91.131
X-Complaints-To: abuse AT clara DOT net
X-Trace: nnrp4.clara.net 940635045 195.8.91.131 (Sat, 23 Oct 1999 00:30:45 BST)
NNTP-Posting-Date: Sat, 23 Oct 1999 00:30:45 BST
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

"Bonifati" <abonifati AT telsa DOT it> wrote:

> so why it crashes? i bet it's a compiler bug, but i'm not able to locate it.

The way to find out is to simplify the program to the smallest that
will still exhibit the problem:

/*** bug.c ***/

int main(void) 
{ 
    return 0;
}

void qsort(int *v)
{
    v[30000] = 0;
}


C:\gccbug>del a.*

C:\gccbug>gcc -g bug.c

C:\gccbug>a

C:\gccbug>a b
Exiting due to signal SIGSEGV
General Protection Fault at eip=00001577
eax=000a9668 ebx=00000000 ecx=00000008 edx=0000bdf4 esi=0008bdac
edi=0008c158
ebp=0008b59c esp=0008b59c program=C:\GCCBUG\A.EXE
cs: sel=00a7  base=831d7000  limit=0009ffff
ds: sel=00af  base=831d7000  limit=0009ffff
es: sel=00af  base=831d7000  limit=0009ffff
fs: sel=0087  base=00014fa0  limit=0000ffff
gs: sel=00bf  base=00000000  limit=0010ffff
ss: sel=00af  base=831d7000  limit=0009ffff
App stack: [0008bee8..0000bee8]  Exceptn stack: [0000bdcc..00009e8c]

Call frame traceback EIPs:
  0x00001577   _qsort+11, line 10 of bug.c
  0x00007cab   ___glob+475
  0x00006db3   ___crt0_glob_function+23
  0x00005a22   ___crt0_load_environment_file+3090
  0x00005f51   ___crt0_setup_arguments+1297
  0x000028dd   ___crt1_startup+101

C:\gccbug>symify a.exe


The DJGPP startup code calls the globbing function which in turn calls
qsort which has been redefined to do something bad.

Whether this is a program or compiler bug hinges on whether or not it
is legal to have user defined functions which overide those in libc.

I am fairly sure that it is, and so this is indeed a DJGPP bug.
-- 
george

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019