Windows segfault, need brief help

Boris Carvajal boris2.9 at gmail.com
Sat Jul 13 06:36:06 UTC 2019


On Friday, 12 July 2019 at 22:46:11 UTC, Anonymouse wrote:
> I'm suddenly getting segfaults when running tests on Windows. 
> It works fine on Linux. I reduced it to a few lines (plus a 
> dependency) with dustmite, but they don't really make sense[1]. 
> Nevertheless they do trigger the segfault.
>
> Can someone with Windows 10 and dmd 2.087.0 try the following 
> and see if it crashes please?
>
>> git clone https://github.com/zorael/tests -b wintestcrash && 
>> cd tests && dub test

I can reproduce it on Win10/x64 (qemu).
But it's really hard to debug on windows (at least with dmd and 
no V.Studio), I could only get a readable backtrace with "WinDbg 
Preview" debugger:

[0x0]   msvcr100!_output_l + 0x41e
[0x1]   msvcr100!printf + 0x7c
[0x2]   test!int 
core.runtime.runModuleUnitTests().__foreachbody1(object.ModuleInfo*) + 0xd1
[0x3]   test!int object.ModuleInfo.opApply(scope int 
delegate(object.ModuleInfo*)).__lambda2(immutable(object.ModuleInfo*)) + 0x27
[0x4]   test!int rt.minfo.moduleinfos_apply(scope int 
delegate(immutable(object.ModuleInfo*))).__foreachbody2(ref 
rt.sections_win64.SectionGroup) + 0x54
[0x5]   test!int rt.minfo.moduleinfos_apply(scope int 
delegate(immutable(object.ModuleInfo*))) + 0x1f
[0x6]   test!int object.ModuleInfo.opApply(scope int 
delegate(object.ModuleInfo*)) + 0x27
[0x7]   test!runModuleUnitTests + 0xfe
...
msvcr100!_output_l+0x41e:
00000000`62e0346e 443811   cmp  byte ptr [rcx],r10b 
ds:00000000`00000010=??
Registers are: rcx = 0x0000000000000010, r10 = 0x0000000000000000
it seems like ( str[i] == '\0')

So the program try to print from an invalid pointer and the 
StackTrace/Throwable object is somewhat related.


More information about the Digitalmars-d-learn mailing list