delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/04/19/04:29:57

Date: Wed, 19 Apr 2000 10:14:20 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
X-Sender: eliz AT is
To: "Campbell, Rolf [SKY:1U32:EXCH]" <moscoop AT americasm01 DOT nt DOT com>
cc: djgpp AT delorie DOT com
Subject: Re: DJGPP and Win2K
In-Reply-To: <38FC9A40.CE26E3A1@americasm01.nt.com>
Message-ID: <Pine.SUN.3.91.1000419101401.10023S-100000@is>
MIME-Version: 1.0
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On Tue, 18 Apr 2000, Campbell, Rolf [SKY:1U32:EXCH] wrote:

> > GCC is special in that it itself runs DJGPP programs.  Perhaps you
> > need deeper nesting of DJGPP programs to cause NTVDM to crash.  For
> > example, what if you invoke Bash from Make and then invoke ls from
> > that Bash?
> 
> It crashes when bash exits.  It does not crash when 'ls' is run from
> inside that bash, inside the make.

Thanks for testing.

> This is my best educated guess right now:
> 
> If we have 2 djgpp programs, called 'a' and 'b'.  And we invoke 'a', and
> then 'a' runs 'b', than 'a' terminates itself, the crash will occur after
> 'a' has terminated AND there is any sort of keyboard activity (press or
> release of any key, including things like 'alt' and 'shift').

But the test with Bash running from Make involved 3 programs, right?
So it's actually `a' runs `b' which runs `c', and the crash is when
`b' exits, as far as I understand.

Does it crash if Make runs Bash, but Bash does not run any other
programs?

As for the keyboard activity: does it matter when do you press the
keys?  For example, you could press them before `ls' is run from Bash,
during the time `ls' runs (make it list a large directory, to make
that time more than a split second), or after `ls' exits.

> I'll run some tests to try to confirm this hypothesis of mine when I get
> home and post the results here.

One thing that would be interesting to know is where exactly during
the exit code does it crash.  You could test this with a simple
program used instead of Bash in the same scenario where Bash causes a
crash (I'm assuming that Bash is not special here).  That test program
could be instrumented to print messages telling where it is in the
exit code (for that, you might need to pull a few library modules,
such as crt1.c and dpmiexcp.c, modify them, and paste them into your
program).

Thanks again for working on this.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright 2019   by DJ Delorie     Updated Jul 2019