From: locke AT mcs DOT net (Peter Johnson) Newsgroups: comp.os.msdos.djgpp Subject: Re: Win 2000 and "forcedos" Message-ID: References: <200010111709 DOT NAA12265 AT envy DOT delorie DOT com> <8011-Wed11Oct2000210042+0300-eliz AT is DOT elta DOT co DOT il> X-Newsreader: MicroPlanet Gravity v2.12 X-Proxy-Client: pljohnsn AT uiuc DOT edu from isr5498.urh.uiuc.edu Lines: 43 Date: Thu, 12 Oct 2000 00:58:13 -0500 NNTP-Posting-Host: 128.174.5.27 X-Complaints-To: abuse AT uiuc DOT edu X-Trace: vixen.cso.uiuc.edu 971330242 128.174.5.27 (Thu, 12 Oct 2000 00:57:22 CDT) NNTP-Posting-Date: Thu, 12 Oct 2000 00:57:22 CDT Organization: University of Illinois at Urbana-Champaign To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com In article <8011-Wed11Oct2000210042+0300-eliz AT is DOT elta DOT co DOT il>, eliz AT is DOT elta DOT co DOT il says... > > Date: Wed, 11 Oct 2000 13:09:18 -0400 > > From: DJ Delorie > > > > It's in the NT 4 help file and MSDN. FORCEDOS disables the OS/2 > > subsystem (etc), forcing NT to run a program in a VDM even if NT > > wouldn't normally have recognized the program as an MS-DOS program. > > Thanks for the info. > > > I'm not sure why this would solve the W2K nesting problem, though. > > I'm not sure; from your description it looks like it shouldn't. > However, we won't lose anything if we try... > I just tried and it doesn't appear that it works (eg, "forcedos make" still exhibits the crash problem). On a side note, I found another thing that Win2K breaks: hardware breakpoints. This isn't particularly a problem for gdb, as it defaults to software (int3) breakpoints, but edebug fails to single-step (and reports back error messages saying it can't get a DPMI breakpoint), and fsdb just dies horribly (lock-up essentially).. and gdb fails when you try to use hbreak, so it's not just the edebug-based code. Another fsdb-related item: the method it uses to get the LDT causes FSDB to crash under Win2K. I've managed to work around this by rewriting that code to use the DPMI get LDT entry call, but it doesn't let you read nearly so much :(. I also managed to fix the hardware breakpoint problem by making the original code think that all the hardware breakpoints have been already used as startup, at which point fsdb defaults to using software breakpoints. I can send patches for a "win2k-compat" version of fsdb to whoever the current maintainer is, but unfortunately I doubt it would be good to integrate them into the main source, as I don't believe there's a reliable method to find out if the program is running under Win2K versus NT4 (if I'm wrong on this, please let me know!). -- Peter Johnson locke AT mcs DOT net