Date: Wed, 19 Apr 2000 10:14:20 +0200 (IST) From: Eli Zaretskii X-Sender: eliz AT is To: "Campbell, Rolf [SKY:1U32:EXCH]" cc: djgpp AT delorie DOT com Subject: Re: DJGPP and Win2K In-Reply-To: <38FC9A40.CE26E3A1@americasm01.nt.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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 Precedence: bulk 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.