Mail Archives: cygwin/2001/02/28/06:26:52
Hi Tony,
NT is a bit more vulnerable regarding memory fragmentation than most Unixes.
If you want 450MB in one big array, it may happen that the memory space has
become so fragmented, there is no 450MB slot available anymore in the 2GB or
virtual memory space that you have at your disposition.
some tips:
- your latest error message doesn't sound like memory failure. Have you
fully debugged your program?
- make absolutely sure that you have *no* memory leaks. Use 'purify' on SGI.
- separate the way small blocks are allocated from the way big blocks are
allocated. One way is to allocate small block in large chunks. Another way
is to use malloc()/free() for small objects, but
VirtualAlloc()/VirtualFree() for big ones (allocates chunks of 64K). This
attacks the fragmentation problem.
- if you use multiple threads (you probably don't) it might interest you
that the default virtual memory size reserved for a thread stack is 32MB on
NT. Furthermore, (an older version I know of) Cygwin does not give back this
space when a thread exits: each thread leaks 32MB of virtual memory. You can
reduce the thread stack space using the M$ EDITBIN.EXE program (e.g. to
1MB).
- check when gdb (-nw) starts up your program which dll's are loaded, and at
which addresses. If you depend on many dll's they might fragment your
virtual memory space. Use the M$ REBASE.EXE utility to change the address at
which they are loaded.
- If you have too much money, you might consider switching to NT Enterprise
Edition (pay some $10,000 for decrippling your OS), which gives you 3GB of
virtual memory iso the standard 2GB. In terms of W2K, this shameless M$
product is called "W2K Advanced Server". Again, after compiling, you must
enable the '3GB option' in your compiled binary with the EDITBIN program.
best regards,
Peter
-----Original Message-----
From: Tony_LELIEVRE AT pechiney DOT com [mailto:Tony_LELIEVRE AT pechiney DOT com]
Sent: Wednesday, February 28, 2001 10:58 AM
To: cygwin AT cygwin DOT com
Subject: Memory problem
Here I am again ! (see my former message VirtualAlloc failed : 26/02/2001
09h21)
I have now installed CygWin 1.1.8 on NT 4.0.
I have a finite element program in c++ which works on SGI. I want it to work
on NT.
I compiled this program with cygwin, using the bash and the new library
gcc-3 : everything went OK.
With cygnus (I had before : see my former message Virtual Alloc failed), I
could run small programs.
Now, I always have a problem of memory. This is the message I have with one
of the data file :
0 [sig] v 270 stackdump: Dumping stack trace to v.exe.stackdump
Aborted (core dumped)
By the way, I cannot find the core file.
This file v.exe.stackdump is the following (I guess it won't help you,
but...) :
Stack trace:
Frame Function Args
025CBDD4 77F04F37 (00000078, 0000EA60, 00000000, 610433F9)
025CBE24 77F04F37 (00000000, 025CC9A8, 025CC934, 61041CE5)
025CBE74 61041FF2 (00000006, 0000010E, 0049D4C0, 004769BA)
025CBEA4 6103FBA8 (0000010E, 00000006, 025CA65C, 00000000)
025CBED4 6103FD3E (0000010E, 00000006, 025CBFB4, 00000000)
025CBEF4 61076584 (6108D010, 0000010E, 00000006, 00410518)
025CBF24 6106C278 (6108D010, 00000006, 025CBF74, 0049524D)
025CBF44 6106C250 (00000006, 00000002, 025CA65C, 00000000)
025CBF64 61068E8C (00000000, 00000000, 025CBF84, 00475AAD)
025CBF74 00475A9F (025CC934, 00000002, 025CC5F4, 00475CBF)
025CBF84 00475AAD (0049D4C4, 0049D4C0, 0049D4C0, 00000000)
025CC5F4 00475CBF (025CF6E4, 025CFD7C, 025CC934, 025CC658)
025CC864 0040A5C4 (025CC934, 025CFD90, 00000000, 40490000)
025CC8F4 00408ACD (025CC934, 1A020CA8, 004010D1, 004010C0)
025CFEB4 00401168 (00000002, 1A020CA8, 0A010008, FFFFFFFE)
025CFF10 61003859 (00000000, 00000000, 77F863D3, 77F863DB)
End of stack trace (more stack frames may be present)
This error always occured at the same moment, during the execution of the
program.
The execution requires about 450 Mo on SGI, and the PC has 768 Mo RAM. I
don't understand why there is a problem of memory.
Should I change things in my program in order to make it work under NT ?
Should I had some options when I run gcc in order to allow the program to
use more memory ?
I hope you have an idea of the problem...
Thanks a lot,
Tony LELIEVRE.
This is my cygcheck -r -s -v
Cygnus Win95/NT Configuration Diagnostics
Current System Time: Wed Feb 28 09:15:46 2001
WinNT Ver 4.0 build 1381 Service Pack 6
Path: /usr/local/bin
/usr/bin
/bin
/cygdrive/c/dmi/win32/bin
/cygdrive/c/WINNT/system32
/cygdrive/c/WINNT
/cygdrive/c/cygnus/cygwin~1/h-i586~1/bin
.
SysDir: C:\WINNT\System32
WinDir: C:\WINNT
Here's some environment variables that may affect cygwin:
PWD = `/cygdrive/c/Mistral/src/Mistral/TestCuve'
USER = `tony'
MAKE_MODE = `unix'
HOME = `/home/tony'
Here's the rest of your environment variables:
NUMBER_OF_PROCESSORS = `2'
PROMPT = `$P$G'
LOGONSERVER = `\\WSNT1'
OS2LIBPATH = `C:\WINNT\system32\os2\dll;'
COMSPEC = `C:\WINNT\system32\cmd.exe'
!C: = `C:\CygWin\bin'
SYSTEMDRIVE = `C:'
HOSTNAME = `WSNT1'
PROCESSOR_REVISION = `0803'
PATHEXT = `.COM;.EXE;.BAT;.CMD'
COMPUTERNAME = `WSNT1'
WINDIR = `C:\WINNT'
USERPROFILE = `C:\WINNT\Profiles\tony'
PS1 = `\[\033]0;\w\007
\033[32m\]\u@\h \[\033[33m\w\033[0m\]
$ '
MACHTYPE = `i686-pc-cygwin'
ANSYS56_DIR = `C:\ANSYS56'
PROCESSOR_IDENTIFIER = `x86 Family 6 Model 8 Stepping 3, GenuineIntel'
WIN32DMIPATH = `c:\dmi\win32'
P_SCHEMA = `C:\ANSYS56\ac4\schema'
OS = `Windows_NT'
OLDPWD = `/cygdrive/c/Mistral/src/Mistral'
PROCESSOR_ARCHITECTURE = `x86'
TEMP = `/cygdrive/c/TEMP'
PROCESSOR_LEVEL = `6'
SYSTEMROOT = `C:\WINNT'
ANSYS_SYSDIR = `Intel'
HOMEDRIVE = `C:'
SHLVL = `1'
HOMEPATH = `\'
USERDOMAIN = `WSNT1'
USERNAME = `tony'
SHELL = `/bin/sh'
HOSTTYPE = `i686'
OSTYPE = `cygwin'
TERM = `cygwin'
_ = `/usr/bin/cygcheck'
Scanning registry for keys with `Cygnus' in them...
HKEY_CURRENT_USER\Software\Cygnus Solutions
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2
(default) = `/cygdrive'
cygdrive flags = 0x00000022
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/
(default) = `C:/cygwin'
flags = 0x00000002
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/usr/bin
(default) = `C:/cygwin/bin'
flags = 0x00000002
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/usr/lib
(default) = `C:/cygwin/lib'
flags = 0x00000002
HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\Program Options
Listing available drives...
Drv Type Size Free Flags Name
a: fd N/A N/A
c: hd NTFS 8032Mb 50% CP CS UN PA FC
d: cd N/A N/A
fd=floppy, hd=hard drive, cd=CD-ROM, net=Network Share
CP=Case Preserving, CS=Case Sensitive, UN=Unicode
PA=Persistent ACLS, FC=File Compression, VC=Volume Compression
Mount entries: these map POSIX directories to your NT drives.
-NT- -POSIX- -Type- -Flags-
C:\cygwin\bin /usr/bin user binmode
C:\cygwin\lib /usr/lib user binmode
C:\cygwin / user binmode
Looking to see where common programs can be found, if at all...
Found: C:\cygwin\bin\bash.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\bash.exe
Warning: C:\cygwin\bin\bash.exe hides
c:\cygnus\cygwin~1\h-i586~1\bin\bash.exe
Found: C:\cygwin\bin\cat.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\cat.exe
Warning: C:\cygwin\bin\cat.exe hides c:\cygnus\cygwin~1\h-i586~1\bin\cat.exe
Found: C:\cygwin\bin\cpp.exe
Found: C:\cygwin\bin\find.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\find.exe
Warning: C:\cygwin\bin\find.exe hides
c:\cygnus\cygwin~1\h-i586~1\bin\find.exe
Found: C:\cygwin\bin\gcc.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\gcc.exe
Warning: C:\cygwin\bin\gcc.exe hides c:\cygnus\cygwin~1\h-i586~1\bin\gcc.exe
Found: C:\cygwin\bin\gdb.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\gdb.exe
Warning: C:\cygwin\bin\gdb.exe hides c:\cygnus\cygwin~1\h-i586~1\bin\gdb.exe
Found: C:\cygwin\bin\ld.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\ld.exe
Warning: C:\cygwin\bin\ld.exe hides c:\cygnus\cygwin~1\h-i586~1\bin\ld.exe
Found: C:\cygwin\bin\ls.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\ls.exe
Warning: C:\cygwin\bin\ls.exe hides c:\cygnus\cygwin~1\h-i586~1\bin\ls.exe
Found: C:\cygwin\bin\make.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\make.exe
Warning: C:\cygwin\bin\make.exe hides
c:\cygnus\cygwin~1\h-i586~1\bin\make.exe
Found: C:\cygwin\bin\sh.exe
Found: c:\cygnus\cygwin~1\h-i586~1\bin\sh.exe
Warning: C:\cygwin\bin\sh.exe hides c:\cygnus\cygwin~1\h-i586~1\bin\sh.exe
Looking for various Cygnus DLLs... (-v gives version info)
56k 2000/12/03 C:\cygwin\bin\cygbz21.0.dll - os=4.0 img=1.0 sys=4.0
"cygbz21.0.dll" v0.0 ts=2000/11/20 23:53
82k 2001/01/21 C:\cygwin\bin\cygform5.dll - os=4.0 img=1.0 sys=4.0
"cygform5.dll" v0.0 ts=2001/1/21 20:39
18k 2000/10/23 C:\cygwin\bin\cyggdbm.dll - os=4.0 img=1.0 sys=4.0
"cyggdbm.dll" v0.0 ts=2000/10/23 2:26
17k 2001/01/07 C:\cygwin\bin\cyghistory4.dll - os=4.0 img=1.0 sys=4.0
"cyghistory4.dll" v0.0 ts=2001/1/7 4:34
14k 2000/10/23 C:\cygwin\bin\cygintl.dll - os=4.0 img=1.0 sys=4.0
"cygintl.dll" v0.0 ts=2000/10/23 19:02
81k 2000/12/05 C:\cygwin\bin\cygitcl30.dll - os=4.0 img=1.0 sys=4.0
"cygitcl30.dll" v0.0 ts=2000/11/26 1:43
35k 2000/12/05 C:\cygwin\bin\cygitk30.dll - os=4.0 img=1.0 sys=4.0
"cygitk30.dll" v0.0 ts=2000/11/26 1:43
45k 2000/10/22 C:\cygwin\bin\cygjbig1.dll - os=4.0 img=1.0 sys=4.0
"cygjbig1.dll" v0.0 ts=2000/10/22 23:06
119k 2000/10/23 C:\cygwin\bin\cygjpeg6b.dll - os=4.0 img=1.0 sys=4.0
"cygjpeg6b.dll" v0.0 ts=2000/10/23 0:58
53k 2001/01/21 C:\cygwin\bin\cygmenu5.dll - os=4.0 img=1.0 sys=4.0
"cygmenu5.dll" v0.0 ts=2001/1/21 20:39
414k 2001/01/21 C:\cygwin\bin\cygncurses++5.dll - os=4.0 img=1.0 sys=4.0
"cygncurses++5.dll" v0.0 ts=2001/1/21 20:40
299k 2001/01/21 C:\cygwin\bin\cygncurses5.dll - os=4.0 img=1.0 sys=4.0
"cygncurses5.dll" v0.0 ts=2001/1/21 20:38
34k 2001/01/21 C:\cygwin\bin\cygpanel5.dll - os=4.0 img=1.0 sys=4.0
"cygpanel5.dll" v0.0 ts=2001/1/21 20:38
163k 2001/02/03 C:\cygwin\bin\cygpng2.dll - os=4.0 img=1.0 sys=4.0
"cygpng2.dll" v0.0 ts=2001/2/3 21:21
108k 2001/01/07 C:\cygwin\bin\cygreadline4.dll - os=4.0 img=1.0 sys=4.0
"cygreadline4.dll" v0.0 ts=2001/1/7 4:34
390k 2000/12/05 C:\cygwin\bin\cygtcl80.dll - os=4.0 img=1.0 sys=4.0
"cygtcl80.dll" v0.0 ts=2000/11/26 1:39
5k 2000/12/05 C:\cygwin\bin\cygtclpip80.dll - os=4.0 img=1.0 sys=4.0
10k 2000/12/05 C:\cygwin\bin\cygtclreg80.dll - os=4.0 img=1.0 sys=4.0
"cygtclreg80.dll" v0.0 ts=2000/11/26 1:39
243k 2000/10/23 C:\cygwin\bin\cygtiff3.dll - os=4.0 img=1.0 sys=4.0
"cygtiff3.dll" v0.0 ts=2000/10/23 1:14
623k 2000/12/05 C:\cygwin\bin\cygtk80.dll - os=4.0 img=1.0 sys=4.0
"cygtk80.dll" v0.0 ts=2000/11/26 1:43
41k 2000/11/20 C:\cygwin\bin\cygXpm-noX4.dll - os=4.0 img=1.0 sys=4.0
"cygXpm-noX4.dll" v0.0 ts=2000/11/20 2:41
45k 2000/11/20 C:\cygwin\bin\cygXpm-X4.dll - os=4.0 img=1.0 sys=4.0
"cygXpm-X4.dll" v0.0 ts=2000/11/20 2:45
49k 2001/02/03 C:\cygwin\bin\cygz.dll - os=4.0 img=1.0 sys=4.0
"cygz.dll" v0.0 ts=2001/2/3 20:35
615k 2001/01/31 C:\cygwin\bin\cygwin1.dll - os=4.0 img=1.0 sys=4.0
"cygwin1.dll" v0.0 ts=2001/1/31 15:08
Cygwin DLL version info:
dll major: 1001
dll minor: 8
dll epoch: 19
dll bad signal mask: 19005
dll old termios: 5
dll malloc env: 28
api major: 0
api minor: 34
shared data: 3
dll identifier: cygwin1
mount registry: 2
cygnus registry name: Cygnus Solutions
cygwin registry name: Cygwin
program options name: Program Options
cygwin mount registry name: mounts v2
cygdrive flags: cygdrive flags
cygdrive prefix: cygdrive prefix
cygdrive default prefix:
build date: Wed Jan 31 10:08:38 EST 2001
shared id: cygwin1S3
371k 1998/12/01 c:\cygnus\cygwin~1\h-i586~1\bin\cygtcl80.dll - os=4.0
img=1.0 sys=4.0
"cygtcl80.dll" v0.0 ts=1998/12/1 8:25
5k 1998/12/01 c:\cygnus\cygwin~1\h-i586~1\bin\cygtclpip80.dll - os=4.0
img=1.0 sys=4.0
10k 1998/12/01 c:\cygnus\cygwin~1\h-i586~1\bin\cygtclreg80.dll - os=4.0
img=1.0 sys=4.0
"cygtclreg80.dll" v0.0 ts=1998/12/1 8:25
600k 1998/12/01 c:\cygnus\cygwin~1\h-i586~1\bin\cygtk80.dll - os=4.0
img=1.0 sys=4.0
"cygtk80.dll" v0.0 ts=1998/12/1 8:28
446k 1998/12/03 c:\cygnus\cygwin~1\h-i586~1\bin\cygwin1.dll - os=4.0
img=1.0 sys=4.0
"cygwin1.dll" v0.0 ts=1998/12/4 4:39
Cygwin DLL version info:
dll major: 20
dll minor: 1
dll epoch: 19
dll bad signal mask: 19005
api major: 0
api minor: 3
shared data: 1
dll identifier: cygwin
mount registry: 1
cygnus registry name: Cygnus Solutions
cygwin registry name: CYGWIN.DLL setup
program options name: Program Options
cygwin mount registry name: b15.0
build date: Thu Dec 3 20:39:18 PST 1998
CVS taggnu-win32-b20-branch:
shared id: cygwinS1
--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple
--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple
- Raw text -