DMD 2.055 Crashing on Windows 7 x64 (So is my D program)

Mehrdad wfunction at hotmail.com
Mon Sep 26 14:30:42 PDT 2011


On 9/26/2011 1:51 PM, Steven Schveighoffer wrote:
> AHA!
>
> Yes, there is a bug in snn.lib regarding pipes.  And I fixed it, 
> waiting for Walter to incorporate it :)  I needed it for the new 
> std.process.
>
> What it comes down to is, DMC's FILE * implementation does not expect 
> some of the quirks of pipe HANDLEs.  For instance, if you open a FILE 
> * around a pipe handle, it still tries to do a seek on that handle, 
> and crashes.  Also, when the write end of a pipe is closed, reading 
> from the read end results in EPIPE from ReadFile, but this is 
> translated to EBADF by the runtime.  Therefore, FILE * sets an error 
> instead of EOF.
>
> Is the email address you have for this message correct?  If so, I can 
> send you a new version of snn.lib to try linking your code against (if 
> you are willing to go through these steps), to see if it fixes your 
> problem.
>
> Using the command line dmd to build should be sufficient (I think).
>
> -Steve
Thanks for the email.

It seems like it still crashes from SciTE, though. :(
When I try debugging, I see it's doing so inside _close() which is 
/immediately/ above kernel32.dll!@BaseThreadInitThunk at 12()  -- in other 
words, it seems to be called directly from the entrypoint of the 
program, assuming it hasn't undergone optimizations. The error is: 
0xC0000008: An invalid handle was specified.

Is there any other place in which this can happen?


More information about the Digitalmars-d mailing list