DMD 2.055 Crashing on Windows 7 x64 (So is my D program)
Steven Schveighoffer
schveiguy at yahoo.com
Mon Sep 26 14:36:33 PDT 2011
On Mon, 26 Sep 2011 17:30:42 -0400, Mehrdad <wfunction at hotmail.com> wrote:
> 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?
Hm... its hard for me to say. Why would it be calling _close before
main() is called? Very strange. Is there any more stack information?
Can you get it to crash by using a pipe from the command line?
In other words:
myprogram | more
or echo hi | miprogram
?
If this isn't killing the program in the same way, then it might be a
different issue than the one I fixed.
-Steve
More information about the Digitalmars-d
mailing list