sha1Of() crashing and incorrect result on win64

John Colvin john.loughran.colvin at gmail.com
Thu Mar 6 01:05:00 PST 2014


On Thursday, 6 March 2014 at 08:15:55 UTC, knutaf wrote:
> Hello,
>
> Apologies if I have missed some rule or convention in posting 
> this. I'm new to this site and to D as a whole. I do all of my 
> development on Windows and in general try to keep my programs 
> as 64-bit unless I have a reason not to.
>
> I tried the following simple program, but it seems to not only 
> be producing the wrong answer but also crashing (as in, my 
> postmortem debugger comes up when I run it).
>
> import std.stdio;
> import std.digest.sha;
>
> void main()
> {
>     writefln("%s", toHexString(sha1Of("abc")));
> }
>
> Produces:
> 67452301EFCDAB8998BADCFE10325476C3D2E1F0
>
> and then crashes. If I build without -m64, I get 
> A9993E364706816ABA3E25717850C26C9CD0D89D, which is what I was 
> expecting.
>
> I'm also not sure how to produce the right kind of callstack or 
> crash dump. I do most of my debugging with windbg, and the 
> stack has a lot of scary looking mangled names that don't seem 
> terribly helpful.
>
> I found a recent changelist where the version(Win64) has SSE3 
> disabled. I tried to incorporate that change locally, and it 
> seems to have stopped it from crashing, but it still produces 
> the wrong result.
>
> Can anyone else reproduce this? Hopefully it is just a matter 
> of me messing up something simple.
>
> Thanks
> -knutaf

dmd version?


More information about the Digitalmars-d mailing list