Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Mar 2006 14:16:18 -0800
From:      Jason Evans <jasone@freebsd.org>
To:        John-Mark Gurney <gurney_j@resnet.uoregon.edu>
Cc:        current@FreeBSD.org
Subject:   Re: core dumps are HUGE...
Message-ID:  <47CC5AC0-1B44-4485-92A9-70751681A527@freebsd.org>
In-Reply-To: <20060321184019.GX35129@funkthat.com>
References:  <20060321184019.GX35129@funkthat.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mar 21, 2006, at 10:40 AM, John-Mark Gurney wrote:
> If someone wants to spend some time investigating this, this looks  
> like
> an interesting puzzle:
> -bash-2.05b$ cat t.c
> int main() { char *p = 0; *p = 5; return 0;}
> -bash-2.05b$ cc -static -o t t.c
> -bash-2.05b$ ./t
> Segmentation fault (core dumped)
> -bash-2.05b$ ls -l t t.core
> -rwxr-xr-x  1 jmg  jmg  179737 Mar 21 10:36 t
> -rw-------  1 jmg  jmg  50049024 Mar 21 10:36 t.core
>
> I first read that as 5megs, but it turns out that it's 50megs in size!
> A 50 meg core dump for a static program that does nothing?  Though I
> also have questsions about a 179k program file size for something that
> doesn't call any functions...
>
> Now the interesting part is that dynamicly linked:
> -bash-2.05b$ cc -o t t.c
> -bash-2.05b$ ./t
> Segmentation fault (core dumped)
> -bash-2.05b$ ls -l t t.core
> -rwxr-xr-x  1 jmg  jmg    4615 Mar 21 10:38 t
> -rw-------  1 jmg  jmg  303104 Mar 21 10:38 t.core
>
> only 303k...  Still on the hefty side of things for a program that
> just cores, but better than static's 50megs...

When did you last update this system?  I expect the large core dump  
is due to the 16 MB chunk size for older versions of jemalloc.  3  
chunks would add up to about the right amount, though I'd only expect  
there to be 2 chunks for that example program, so I'm guessing that  
you're running on i386, and that there is nearly 16 MB of padding on  
the heap in order to get the first chunk properly aligned.  The  
version of malloc I checked in late last week uses a 2 MB chunk size,  
so the core size should be much smaller.

The core dump from the static binary is probably much smaller because  
nothing ever calls malloc (no dynamic loader in the mix).

Jason




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47CC5AC0-1B44-4485-92A9-70751681A527>