Mail Archives: djgpp/1994/08/25/09:05:20
Having asked twice for confirmation of successful compilation of
production programs (bigger than the tiny test.bat's) without any
result, I come to the conclusion that djgpp v. 1.12 is not
heavily used for production purposes.
This is somehow surprising, but reflects my own mixed experiences
with it from version 1.11 on.
Problem areas:
- Memory allocation is still buggy. Library calls of spawn
and stat often result in segment violation at malloc+200.
- Free physical memory reported is wrong when chunks bigger
than 4096 bytes are requested by malloc or sbrk.
- Debugging of real world applications using spawn is very
difficult because the topline of go32 is not updated when
the spawned program terminates.
- When spawning to another exe (e.g. as.exe), topline often
shows something like 2M of swapped out ram, 244K of used
ram and 16K of free ram in a system with 12M free xms ram
where swapping should not occur at all. It then spends most
of the time in real mode and execution is extremely slowed
down.
- Calling system("mybat.bat arg1 arg2") hangs.
DJ recently suggested to set keepmem=0. The net effect is that
crashes are a somewhat less frequent, but still occur at exactly
the same location in malloc+200.
Having reported the memory problems to DJ in May without any
useful help, I am on the point to abandon djgpp with a sad
feeling.
Maybe he will be happy to get rid of my questions.
Enclosed the symified dumps that prove the problems mentioned
above.
Segment violations without dpmi
===============================
eax=000a3600 ebx=00000002 ecx=00000200 edx=0000001c esi=fffffffc edi=7ffff19b
ebp=7ffff130 esp=7ffff124 cs=d8 ds=48 es=48 fs=48 gs=48 ss=48 cr2=00000200
Call frame traceback EIPs:
0x0005459c _malloc+200
0x00054e6f _strdup+31
0x00054a3e _sprintf+190
0x00054bb5 _stat+297
0x......
eax=7fffe888 ebx=00000002 ecx=16006800 edx=0000001c esi=fffffffc edi=7fffe79e
ebp=7fffe740 esp=7fffe734 cs=d8 ds=48 es=48 fs=48 gs=48 ss=48 cr2=00006800
Call frame traceback EIPs:
0x0006bea4 _malloc+200
0x0006cb79 _spawnlpe+2201
0x0006cdab _spawnve+243
0x0006cf1b _spawnvpe+315
0x0006c2de _spawnlp+24
0x.......
Protection faults with dpmi form windows 3.1
============================================
General Protection Fault at eip=5459c
eax=000e3500 ebx=00000002 ecx=6d2e736c edx=0000001c esi=fffffffc edi=000e11cb
ebp=000e1160 esp=000e1154 cs=cf ds=c7 es=c7 fs=c7 gs=c7 ss=d7 cr2=00001fe4
Call frame traceback EIPs:
0x0005459c _malloc+200
0x00054e6f _strdup+31
0x00054a3e _sprintf+190
0x00054bb5 _stat+297
0x....
===========
-----------
- Raw text -