*BSD News Article 14397


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!metro!basser.cs.su.oz.au!tmx!pos!runxtsa!bde
From: bde@runx.oz.au (Bruce Evans)
Newsgroups: comp.os.386bsd.bugs
Subject: Re: Gcc 2.3.3 bug ?
Message-ID: <1993Apr10.074528.3957@runx.oz.au>
Date: Sat, 10 Apr 93 07:45:28 GMT
References: <1993Apr6.154454.22346@cm.cf.ac.uk> <1psl7c$1pj1@hal.gnu.ai.mit.edu>
Organization: RUNX Un*x Timeshare.  Sydney, Australia.
Lines: 26

In article <1psl7c$1pj1@hal.gnu.ai.mit.edu> mycroft@hal.gnu.ai.mit.edu (Charles Hannum) writes:
>
>In article <1993Apr6.154454.22346@cm.cf.ac.uk> paul@isl.cf.ac.uk (Paul)
>writes:
>>
>> main()
>> {  
>>     long int Domain_Class[253][229][2];
>> }
>
>You are obvious overflowing your process's stack limit.
>...
>> 0x6b <main+3>:  subl   $0x71288,%esp

The default stack (size) limit is 512K (0x80000).  On my system, when the
program is run using "env - gdb prog", the stack top is 0xfdc00000
(USRSTACK), the stack base is 0xfdb7e000 (USRSTACK - 512K - 8K), and the
stack pointer at the beginning of the program is 0xfdbeeffc.  The virtual
addresses from 0xfdbf0000 to 0xfdc0000 are not being used so the effective
stack limit is 64K less than 512K.  The wastage is due to exeve() being
sloppy about sizing the args and environment.  I used "env -" to reduce
the effects of having an environment.

Anyway, you have to worry about the stack limit if you want large stacks.
-- 
Bruce Evans  bde@runx.oz.au