Mail Archives: djgpp/1998/04/05/08:46:48
On Fri, 3 Apr 1998, Rick Currie wrote:
> Synergistic effects of DOS SMARTDRIVE, system(), CWSDPMI/PMODEDJ (TSR or
> stub), and keystrokes randomly cause page faults with error code 0004,
> requiring cold reboot to clear.
Please post the complete message printed when the program crashes,
including the registers' dump, stack traceback and everything else.
These are instrumental in understanding what happens.
Also, please unassemple your program near the EIP value which gets
printed at the crash and tell which function is it in. (A better way
is to use `symify', but since you say the you need to cold-boot after
the crash, it's probably hard or impossible to do in your case.)
It seems that the crashes are due to incorrect hooking/unhooking of
the keyboard interrupt. There is a known bug in the go32-v2 program
which can cause such crashes. Please describe exactly how did you run
the program whose source you posted. Also please see whether your
system configuration loads some TSRs or device drivers which are
related to the keyboard operation.
It is not entirely clear from your message whether the problems happen
when you use CWSDPMI (not PMODE/DJ) without loading it as TSR first
(that's the default setup). Please confirm if they do or don't happen
in this case.
> Have currently worked around bug by replacing system() calls with own
> code to replicate DOS functions.
Please describe what do you mean by ``replicating DOS functions''.
AFAIK, DJGPP's `system' doesn't do anything to bypass DOS. Exactly
what does your replacement for `system' do?
- Raw text -