Alexander Kabaev wrote:
> On Tue, 3 Sep 2002 04:23:39 -0700 (PDT)
> Dag-Erling Smorgrav <[EMAIL PROTECTED]> wrote:
> 
> > ===> usr.bin/getconf
> > Virtual memory exhausted in `operator new'
> > *** Error code 1
> 
> This one I can reproduce. Will fix soon.

Here's a clue:
peter@beast[8:06am]~-130> cat foo.c
int main(int ac, char *av[])
{
        char *a = new char[10000];
}
peter@beast[8:07am]~-131> c++ -o foo foo.c
peter@beast[8:07am]~-132> ./foo
peter@beast[8:08am]~-133> c++ -static -o foo foo.c
peter@beast[8:08am]~-134> ./foo
Abort

peter@beast[8:09am]~-147> ktrace ./foo
Abort
peter@beast[8:09am]~-148> kdump
 34729 ktrace   RET   ktrace 0
 34729 ktrace   CALL  execve(0x11fff947,0x11fff758,0x11fff768)
 34729 ktrace   NAMI  "./foo"
 34729 foo      RET   execve 0
 34729 foo      CALL  readlink(0x12000a154,0x11fff628,0x3f)
 34729 foo      NAMI  "/etc/malloc.conf"
 34729 foo      RET   readlink -1 errno 2 No such file or directory
 34729 foo      CALL  mmap(0,0x2000,0x3,0x1002,0xffffffffffffffff,0,0)
 34729 foo      RET   mmap 1610612736/0x160000000
 34729 foo      CALL  break(0x120030000)
 34729 foo      RET   break -1 errno 12 Cannot allocate memory
...

versus dynamic:
peter@beast[8:10am]~-152> ktrace ./foo
peter@beast[8:11am]~-153> kdump | more
 35056 ktrace   RET   ktrace 0
 35056 ktrace   CALL  execve(0x11fff947,0x11fff758,0x11fff768)
 35056 ktrace   NAMI  "./foo"
 35056 ktrace   NAMI  "/usr/libexec/ld-elf.so.1"
 35056 foo      RET   execve 0
 35056 foo      CALL  mmap(0,0x1590,0x3,0x1000,0xffffffffffffffff,0,0)
 35056 foo      RET   mmap 1610792960/0x16002c000
 35056 foo      CALL  munmap(0x16002c000,0x1590)
 35056 foo      RET   munmap 0
 35056 foo      CALL  __sysctl(0x11fff478,0x2,0x16012ccf8,0x11fff488,0,0)
 35056 foo      RET   __sysctl 0
 35056 foo      CALL  mmap(0,0x8000,0x3,0x1002,0xffffffffffffffff,0,0)
 35056 foo      RET   mmap 1610792960/0x16002c000
[.. lots of ld.so stuff trimmed ...]
 35056 foo      CALL  sigprocmask(0x3,0x16012d158,0)
 35056 foo      RET   sigprocmask 0
 35056 foo      CALL  readlink(0x16024204c,0x11fff628,0x3f)
 35056 foo      NAMI  "/etc/malloc.conf"
 35056 foo      RET   readlink -1 errno 2 No such file or directory
 35056 foo      CALL  mmap(0,0x2000,0x3,0x1002,0xffffffffffffffff,0,0)
 35056 foo      RET   mmap 1611612160/0x1600f4000
 35056 foo      CALL  break(0x120014000)
 35056 foo      RET   break 0
 35056 foo      CALL  break(0x120018000)
 35056 foo      RET   break 0
 35056 foo      CALL  exit(0)

ie: we have this which works:
 35056 foo      CALL  break(0x120014000)
 35056 foo      RET   break 0
vs:
 34729 foo      CALL  break(0x120030000)
 34729 foo      RET   break -1 errno 12 Cannot allocate memory

It doesn't appear to be a resource limit though:

peter@beast[8:17am]~-172> cat foo.c
char buf[1000000];

int main(int ac, char *av[])
{
        char *a = new char[10000];
}
peter@beast[8:17am]~-173> c++ -o foo foo.c
peter@beast[8:17am]~-174> ktrace ./foo
peter@beast[8:18am]~-175> kdump | grep break
 36947 foo      CALL  break(0x120108000)
 36947 foo      RET   break 0
 36947 foo      CALL  break(0x12010c000)
 36947 foo      RET   break 0

How strange..

Cheers,
-Peter
--
Peter Wemm - [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
"All of this is for nothing if we don't go to the stars" - JMS/B5


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to