Segmentation fault in DMD - how to debug?

Andrey Zherikov andrey.zherikov at gmail.com
Thu Sep 29 00:48:03 UTC 2022


I actually see that DMD is very unstable.
Here are three consequtive calls of `dub test --coverage -v 
--build-mode singleFile` without any change in source files:

Failed:
```
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d-mixin-2084(2084,7): Error: unterminated string constant starting at C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d-mixin-2084(2084,14)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d-mixin-2084(2084,14): Error: no identifier for declarator `handler`
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d-mixin-2084(2084,14): Error: semicolon expected to close `alias` declaration
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d(2096,32): 
Error: incomplete mixin expression 
`handler`(args[`].get!(SumTypes[`].Types[`])(), )`
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d(2096,32): 
Error: incomplete mixin expression 
`handler`(args[`].get!(SumTypes[`].Types[1])(), )`
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d(2096,32): 
Error: incomplete mixin expression 
`handler`(args[`].get!(SumTypes[`].Types[2])(), )`
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d(2096,32): 
Error: incomplete mixin expression 
`handler`(args[`].get!(SumTypes[`].Types[3])(), )`
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d(2096,32): 
Error: incomplete mixin expression 
`handler`(args[`].get!(SumTypes[`].Types[4])(), )`
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d(1662,52): 
Error: template instance 
`argparse.internal.parser.Parser.parse!(false, 
Init).parse.matchImpl!(SumType!(Unknown, EndOfArgs, Positional, 
NamedShort, NamedLong))` error instantiating
source\argparse\internal\parser.d(234,19):        instantiated 
from here: `match!(SumType!(Unknown, EndOfArgs, Positional, 
NamedShort, NamedLong))`
source\argparse\internal\subcommands.d(138,47):        
instantiated from here: `parse!(false, Init)`
source\argparse\internal\subcommands.d(103,17):        
instantiated from here: `ParsingSubCommandArgument!(Config('=', 
'\xff', '-', "--", false, false, true, StylingMode.autodetect, 
null, Style(TextStyle([cast(ubyte)1u]), 
TextStyle([cast(ubyte)1u]), TextStyle([cast(ubyte)1u, 
cast(ubyte)4u]), TextStyle([cast(ubyte)93u]), 
TextStyle([cast(ubyte)3u]), TextStyle([cast(ubyte)93u])), null), 
Init, CommandInfo(["init"], LazyString(SumType(Storage(null, ), 
cast(ubyte)0u)), LazyString(SumType(Storage("Print initialization 
script for shell completion.", ), cast(ubyte)0u)), 
LazyString(SumType(Storage("Print initialization script.", ), 
cast(ubyte)0u)), LazyString(SumType(Storage(null, ), 
cast(ubyte)0u))), Complete!(T), "cmd", false)`
source\argparse\internal\package.d(402,32):        ... (4 
instantiations, -v to show) ...
source\argparse\package.d(999,46):        instantiated from here: 
`callParser!(Config('=', '\xff', '-', "--", false, false, true, 
StylingMode.autodetect, null, Style(TextStyle([cast(ubyte)1u]), 
TextStyle([cast(ubyte)1u]), TextStyle([cast(ubyte)1u, 
cast(ubyte)4u]), TextStyle([cast(ubyte)93u]), 
TextStyle([cast(ubyte)3u]), TextStyle([cast(ubyte)93u])), null), 
false, Complete!(T))`
source\argparse\package.d(794,12):        instantiated from here: 
`CLI!(Config('=', '\xff', '-', "--", false, false, true, 
StylingMode.autodetect, null, Style(TextStyle([cast(ubyte)1u]), 
TextStyle([cast(ubyte)1u]), TextStyle([cast(ubyte)1u, 
cast(ubyte)4u]), TextStyle([cast(ubyte)93u]), 
TextStyle([cast(ubyte)3u]), TextStyle([cast(ubyte)93u])), null), 
T)`
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d-mixin-2084(2084,7): Error: unterminated string constant starting at C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d-mixin-2084(2084,14)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d-mixin-2084(2084,14): Error: no identifier for declarator `handler`
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d-mixin-2084(2084,14): Error: semicolon expected to close `alias` declaration
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d(2096,32): 
Error: incomplete mixin expression 
`handler`(args[`].get!(SumTypes[`].Types[`])(), )`
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d(2096,32): 
Error: incomplete mixin expression 
`handler`(args[`].get!(SumTypes[`].Types[1])(), )`
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d(2096,32): 
Error: incomplete mixin expression 
`handler`(args[`].get!(SumTypes[`].Types[2])(), )`
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d(2096,32): 
Error: incomplete mixin expression 
`handler`(args[`].get!(SumTypes[`].Types[3])(), )`
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d(2096,32): 
Error: incomplete mixin expression 
`handler`(args[`].get!(SumTypes[`].Types[4])(), )`
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d(1662,52): 
Error: template instance 
`argparse.internal.parser.Parser.parse!(true, 
Init).parse.matchImpl!(SumType!(Unknown, EndOfArgs, Positional, 
NamedShort, NamedLong))` error instantiating
source\argparse\internal\parser.d(234,19):        instantiated 
from here: `match!(SumType!(Unknown, EndOfArgs, Positional, 
NamedShort, NamedLong))`
source\argparse\internal\subcommands.d(138,47):        
instantiated from here: `parse!(true, Init)`
source\argparse\internal\subcommands.d(104,17):        
instantiated from here: `ParsingSubCommandArgument!(Config('=', 
'\xff', '-', "--", false, false, true, StylingMode.autodetect, 
null, Style(TextStyle([cast(ubyte)1u]), 
TextStyle([cast(ubyte)1u]), TextStyle([cast(ubyte)1u, 
cast(ubyte)4u]), TextStyle([cast(ubyte)93u]), 
TextStyle([cast(ubyte)3u]), TextStyle([cast(ubyte)93u])), null), 
Init, CommandInfo(["init"], LazyString(SumType(Storage(null, ), 
cast(ubyte)0u)), LazyString(SumType(Storage("Print initialization 
script for shell completion.", ), cast(ubyte)0u)), 
LazyString(SumType(Storage("Print initialization script.", ), 
cast(ubyte)0u)), LazyString(SumType(Storage(null, ), 
cast(ubyte)0u))), Complete!(T), "cmd", true)`
source\argparse\internal\package.d(402,32):        ... (4 
instantiations, -v to show) ...
source\argparse\package.d(999,46):        instantiated from here: 
`callParser!(Config('=', '\xff', '-', "--", false, false, true, 
StylingMode.autodetect, null, Style(TextStyle([cast(ubyte)1u]), 
TextStyle([cast(ubyte)1u]), TextStyle([cast(ubyte)1u, 
cast(ubyte)4u]), TextStyle([cast(ubyte)93u]), 
TextStyle([cast(ubyte)3u]), TextStyle([cast(ubyte)93u])), null), 
false, Complete!(T))`
source\argparse\package.d(794,12):        instantiated from here: 
`CLI!(Config('=', '\xff', '-', "--", false, false, true, 
StylingMode.autodetect, null, Style(TextStyle([cast(ubyte)1u]), 
TextStyle([cast(ubyte)1u]), TextStyle([cast(ubyte)1u, 
cast(ubyte)4u]), TextStyle([cast(ubyte)93u]), 
TextStyle([cast(ubyte)3u]), TextStyle([cast(ubyte)93u])), null), 
T)`
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d-mixin-2084(2084,7): Error: unterminated string constant starting at C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d-mixin-2084(2084,14)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\sumtype.d-mixin-2084(2084,14): Error: no identifier for declarator `handler`
C:\D\dmd2\windows\bin\dmd.exe failed with exit code 1.
```

Failed:
```
C:\D\dmd2\windows\bin\dmd.exe failed with exit code -1073741819.
```

Succeeded:
```
Linking...
LINK : 
.dub\build\argparse-test-library-unittest-cov-windows-x86_64-dmd_v2.100.2-dirty-54DD8361E221F5FB88F9291F67344057\argparse-test-library.exe not found or not built by the last incremental link; performing full link
Running argparse-test-library.exe
```


More information about the Digitalmars-d mailing list