Segmentation fault in DMD - how to debug?

Andrey Zherikov andrey.zherikov at gmail.com
Fri Oct 7 14:12:14 UTC 2022


I cloned master branch from `https://github.com/dlang/dmd`, built 
DMD with `BUILD=debug ./compiler/src/build.d dmd` then executed 
with a command that dub runs and got the following:
```
ERROR: This is a compiler bug.
Please report it via https://issues.dlang.org/enter_bug.cgi
with, preferably, a reduced, reproducible example and the 
information below.
DustMite (https://github.com/CyberShadow/DustMite/wiki) can help 
with the reduction.
---
DMD v2.100.2

predefs   Have_argparse DigitalMars LittleEndian D_Version2 all 
D_SIMD Posix ELFv1 linux CRuntime_Glibc CppRuntime_Gcc 
D_InlineAsm_X86_64 X86_64 D_LP64 D_PIC unittest assert 
D_PreConditions D_PostConditions D_Invariants D_ModuleInfo 
D_Exceptions D_TypeInfo D_HardFloat
binary    /home/andrey/dmd/dmd/generated/linux/debug/64/dmd
version   v2.100.2

config    /home/andrey/dmd/dmd/generated/linux/debug/64/dmd.conf
DFLAGS    
-I/home/andrey/dmd/dmd/generated/linux/debug/64/../../../../druntime/import -I/home/andrey/dmd/dmd/generated/linux/debug/64/../../../../../phobos -L-L/home/andrey/dmd/dmd/generated/linux/debug/64/../../../../../phobos/generated/linux/debug/64 -L--export-dynamic -fPIC
---
core.exception.ArrayIndexError@/home/andrey/dmd/dmd/compiler/src/dmd/root/array.d(269): index [1722] is out of bounds for array of length 141
----------------
??:? _d_arraybounds_indexp [0x564720b74f5d]
/home/andrey/dmd/dmd/compiler/src/dmd/root/array.d:269 
_ZN5ArrayIP10ExpressionEixEm [0x5647207f4025]
src/dmd/dinterpret.d:353 _ZN9CtfeStack4pushEP14VarDeclaration 
[0x564720897f1a]
src/dmd/dinterpret.d:2316 int 
dmd.dinterpret.Interpreter.visit(dmd.expression.DeclarationExp).__lambda6!(dmd.dsymbol.Dsymbol).__lambda6(dmd.dsymbol.Dsymbol) [0x56472089dc24]
src/dmd/declaration.d:701 int 
dmd.declaration.TupleDeclaration.foreachVar(scope int 
delegate(dmd.dsymbol.Dsymbol)) [0x564720891345]
src/dmd/dinterpret.d:2309 
_ZN11Interpreter5visitEP14DeclarationExp [0x56472089d875]
src/dmd/expression.d:4112 _ZN14DeclarationExp6acceptEP7Visitor 
[0x56472091962d]
src/dmd/dinterpret.d:6526 dmd.expression.Expression 
dmd.dinterpret.interpret(dmd.expression.UnionExp*, 
dmd.expression.Expression, dmd.dinterpret.InterState*, 
dmd.dinterpret.CTFEGoal) [0x5647208aaf18]
src/dmd/dinterpret.d:816 _ZN11Interpreter5visitEP12ExpStatement 
[0x56472089992f]
src/dmd/statement.d:485 _ZN12ExpStatement6acceptEP7Visitor 
[0x5647209ccb31]
src/dmd/dinterpret.d:6591 dmd.expression.Expression 
dmd.dinterpret.interpret(dmd.expression.UnionExp*, 
dmd.statement.Statement, dmd.dinterpret.InterState*) 
[0x5647208ab13b]
src/dmd/dinterpret.d:834 
_ZN11Interpreter5visitEP17CompoundStatement [0x5647208999f1]
src/dmd/statement.d:628 _ZN17CompoundStatement6acceptEP7Visitor 
[0x5647209cd055]
src/dmd/dinterpret.d:6591 dmd.expression.Expression 
dmd.dinterpret.interpret(dmd.expression.UnionExp*, 
dmd.statement.Statement, dmd.dinterpret.InterState*) 
[0x5647208ab13b]
src/dmd/dinterpret.d:834 
_ZN11Interpreter5visitEP17CompoundStatement [0x5647208999f1]
src/dmd/statement.d:628 _ZN17CompoundStatement6acceptEP7Visitor 
[0x5647209cd055]
src/dmd/dinterpret.d:6591 dmd.expression.Expression 
dmd.dinterpret.interpret(dmd.expression.UnionExp*, 
dmd.statement.Statement, dmd.dinterpret.InterState*) 
[0x5647208ab13b]
src/dmd/dinterpret.d:644 dmd.expression.Expression 
dmd.dinterpret.interpretFunction(dmd.expression.UnionExp*, 
dmd.func.FuncDeclaration, dmd.dinterpret.InterState*, 
dmd.root.array.Array!(dmd.expression.Expression).Array*, 
dmd.expression.Expression) [0x5647208992bf]
src/dmd/dinterpret.d:4986 _ZN11Interpreter5visitEP7CallExp 
[0x5647208a5ff8]
src/dmd/expression.d:5169 _ZN7CallExp6acceptEP7Visitor 
[0x56472091be45]
src/dmd/dinterpret.d:6526 dmd.expression.Expression 
dmd.dinterpret.interpret(dmd.expression.UnionExp*, 
dmd.expression.Expression, dmd.dinterpret.InterState*, 
dmd.dinterpret.CTFEGoal) [0x5647208aaf18]
src/dmd/dinterpret.d:6536 dmd.expression.Expression 
dmd.dinterpret.interpret(dmd.expression.Expression, 
dmd.dinterpret.InterState*, dmd.dinterpret.CTFEGoal) 
[0x5647208aaf71]
src/dmd/dinterpret.d:100 dmd.expression.Expression 
dmd.dinterpret.ctfeInterpret(dmd.expression.Expression) 
[0x56472089720a]
src/dmd/expression.d:1619 _ZN10Expression13ctfeInterpretEv 
[0x5647209131ec]
src/dmd/initsem.d:465 dmd.init.Initializer 
dmd.initsem.initializerSemantic(dmd.init.Initializer, 
dmd.dscope.Scope*, ref dmd.mtype.Type, 
dmd.init.NeedInterpret).visitExp(dmd.init.ExpInitializer) 
[0x56472097105d]
src/dmd/initsem.d:1058 
_Z19initializerSemanticP11InitializerP5ScopeRP4Type13NeedInterpret [0x56472096f691]
src/dmd/semantic2.d:259 
_ZN16Semantic2Visitor5visitEP14VarDeclaration [0x5647209c45e8]
src/dmd/declaration.d:1703 _ZN14VarDeclaration6acceptEP7Visitor 
[0x564720893765]
src/dmd/semantic2.d:79 _Z9semantic2P7DsymbolP5Scope 
[0x5647209c3e7d]
src/dmd/semantic2.d:173 
_ZN16Semantic2Visitor5visitEP16TemplateInstance [0x5647209c42d0]
src/dmd/dtemplate.d:7518 _ZN16TemplateInstance6acceptEP7Visitor 
[0x5647208fd19d]
src/dmd/semantic2.d:79 _Z9semantic2P7DsymbolP5Scope 
[0x5647209c3e7d]
src/dmd/dsymbolsem.d:6216 void 
dmd.dsymbolsem.templateInstanceSemantic(dmd.dtemplate.TemplateInstance, dmd.dscope.Scope*, dmd.root.array.Array!(dmd.expression.Expression).Array*) [0x5647208e8094]
src/dmd/dsymbolsem.d:2639 
_ZN22DsymbolSemanticVisitor5visitEP16TemplateInstance 
[0x5647208dd3b6]
src/dmd/dtemplate.d:7518 _ZN16TemplateInstance6acceptEP7Visitor 
[0x5647208fd19d]
src/dmd/dsymbolsem.d:130 _Z15dsymbolSemanticP7DsymbolP5Scope 
[0x5647208d5395]
src/dmd/typesem.d:2799 void dmd.typesem.resolve(dmd.mtype.Type, 
ref const(dmd.globals.Loc), dmd.dscope.Scope*, out 
dmd.expression.Expression, out dmd.mtype.Type, out 
dmd.dsymbol.Dsymbol, bool).visitInstance(dmd.mtype.TypeInstance) 
[0x5647209f71db]
src/dmd/typesem.d:3169 void dmd.typesem.resolve(dmd.mtype.Type, 
ref const(dmd.globals.Loc), dmd.dscope.Scope*, out 
dmd.expression.Expression, out dmd.mtype.Type, out 
dmd.dsymbol.Dsymbol, bool) [0x5647209f6784]
src/dmd/dtemplate.d:6599 bool 
dmd.dtemplate.TemplateInstance.semanticTiargs(ref 
const(dmd.globals.Loc), dmd.dscope.Scope*, 
dmd.root.array.Array!(dmd.root.rootobject.RootObject).Array*, 
int, dmd.declaration.TupleDeclaration) [0x5647208fa86d]
src/dmd/dtemplate.d:6851 bool 
dmd.dtemplate.TemplateInstance.semanticTiargs(dmd.dscope.Scope*) 
[0x5647208fb0af]
src/dmd/expressionsem.d:13071 dmd.expression.Expression 
dmd.expressionsem.semanticY(dmd.expression.DotTemplateInstanceExp, dmd.dscope.Scope*, int) [0x56472094d57a]
src/dmd/expressionsem.d:6766 
_ZN25ExpressionSemanticVisitor5visitEP22DotTemplateInstanceExp 
[0x564720938901]
src/dmd/expression.d:4984 
_ZN22DotTemplateInstanceExp6acceptEP7Visitor [0x56472091b765]
src/dmd/expressionsem.d:12513 
_Z18expressionSemanticP10ExpressionP5Scope [0x56472094b263]
src/dmd/statementsem.d:205 
_ZN24StatementSemanticVisitor5visitEP12ExpStatement 
[0x5647209d05e7]
src/dmd/statement.d:485 _ZN12ExpStatement6acceptEP7Visitor 
[0x5647209ccb31]
src/dmd/statementsem.d:147 
_Z17statementSemanticP9StatementP5Scope [0x5647209d04cb]
src/dmd/statementsem.d:268 
_ZN24StatementSemanticVisitor5visitEP17CompoundStatement 
[0x5647209d08ae]
src/dmd/statement.d:628 _ZN17CompoundStatement6acceptEP7Visitor 
[0x5647209cd055]
src/dmd/statementsem.d:147 
_Z17statementSemanticP9StatementP5Scope [0x5647209d04cb]
src/dmd/statementsem.d:475 
_ZN24StatementSemanticVisitor5visitEP14ScopeStatement 
[0x5647209d142e]
src/dmd/statement.d:736 _ZN14ScopeStatement6acceptEP7Visitor 
[0x5647209cd45d]
src/dmd/statementsem.d:147 
_Z17statementSemanticP9StatementP5Scope [0x5647209d04cb]
src/dmd/statementsem.d:513 
_ZN24StatementSemanticVisitor5visitEP19ForwardingStatement 
[0x5647209d162d]
src/dmd/statement.d:776 _ZN19ForwardingStatement6acceptEP7Visitor 
[0x5647209cd59d]
src/dmd/statementsem.d:147 
_Z17statementSemanticP9StatementP5Scope [0x5647209d04cb]
src/dmd/statementsem.d:268 
_ZN24StatementSemanticVisitor5visitEP17CompoundStatement 
[0x5647209d08ae]
src/dmd/statement.d:628 _ZN17CompoundStatement6acceptEP7Visitor 
[0x5647209cd055]
src/dmd/statementsem.d:147 
_Z17statementSemanticP9StatementP5Scope [0x5647209d04cb]
src/dmd/semantic3.d:598 
_ZN16Semantic3Visitor5visitEP15FuncDeclaration [0x5647209c7149]
src/dmd/func.d:2930 _ZN15FuncDeclaration6acceptEP7Visitor 
[0x5647209560d9]
src/dmd/semantic3.d:82 _Z9semantic3P7DsymbolP5Scope 
[0x5647209c5b29]
src/dmd/semantic3.d:133 
_ZN16Semantic3Visitor5visitEP16TemplateInstance [0x5647209c5cd2]
src/dmd/dtemplate.d:7518 _ZN16TemplateInstance6acceptEP7Visitor 
[0x5647208fd19d]
src/dmd/semantic3.d:82 _Z9semantic3P7DsymbolP5Scope 
[0x5647209c5b29]
src/dmd/dtemplate.d:7506 void 
dmd.dtemplate.TemplateInstance.trySemantic3(dmd.dscope.Scope*) 
[0x5647208fd156]
src/dmd/dsymbolsem.d:6293 void 
dmd.dsymbolsem.templateInstanceSemantic(dmd.dtemplate.TemplateInstance, dmd.dscope.Scope*, dmd.root.array.Array!(dmd.expression.Expression).Array*) [0x5647208e83da]
src/dmd/dtemplate.d:3090 void dmd.dtemplate.functionResolve(ref 
dmd.declaration.MatchAccumulator, dmd.dsymbol.Dsymbol, 
dmd.globals.Loc, dmd.dscope.Scope*, 
dmd.root.array.Array!(dmd.root.rootobject.RootObject).Array*, 
dmd.mtype.Type, 
dmd.root.array.Array!(dmd.expression.Expression).Array*, 
const(char)**) [0x5647208f0efa]
src/dmd/func.d:3227 dmd.func.FuncDeclaration 
dmd.func.resolveFuncCall(ref const(dmd.globals.Loc), 
dmd.dscope.Scope*, dmd.dsymbol.Dsymbol, 
dmd.root.array.Array!(dmd.root.rootobject.RootObject).Array*, 
dmd.mtype.Type, 
dmd.root.array.Array!(dmd.expression.Expression).Array*, 
dmd.func.FuncResolveFlag) [0x564720956943]
src/dmd/expressionsem.d:4991 
_ZN25ExpressionSemanticVisitor5visitEP7CallExp [0x564720932367]
src/dmd/expression.d:5169 _ZN7CallExp6acceptEP7Visitor 
[0x56472091be45]
src/dmd/expressionsem.d:12513 
_Z18expressionSemanticP10ExpressionP5Scope [0x56472094b263]
src/dmd/statementsem.d:205 
_ZN24StatementSemanticVisitor5visitEP12ExpStatement 
[0x5647209d05e7]
src/dmd/statement.d:485 _ZN12ExpStatement6acceptEP7Visitor 
[0x5647209ccb31]
src/dmd/statementsem.d:147 
_Z17statementSemanticP9StatementP5Scope [0x5647209d04cb]
src/dmd/statementsem.d:268 
_ZN24StatementSemanticVisitor5visitEP17CompoundStatement 
[0x5647209d08ae]
src/dmd/statement.d:628 _ZN17CompoundStatement6acceptEP7Visitor 
[0x5647209cd055]
src/dmd/statementsem.d:147 
_Z17statementSemanticP9StatementP5Scope [0x5647209d04cb]
src/dmd/semantic3.d:598 
_ZN16Semantic3Visitor5visitEP15FuncDeclaration [0x5647209c7149]
src/dmd/func.d:2930 _ZN15FuncDeclaration6acceptEP7Visitor 
[0x5647209560d9]
src/dmd/semantic3.d:82 _Z9semantic3P7DsymbolP5Scope 
[0x5647209c5b29]
src/dmd/semantic3.d:133 
_ZN16Semantic3Visitor5visitEP16TemplateInstance [0x5647209c5cd2]
src/dmd/dtemplate.d:7518 _ZN16TemplateInstance6acceptEP7Visitor 
[0x5647208fd19d]
src/dmd/semantic3.d:82 _Z9semantic3P7DsymbolP5Scope 
[0x5647209c5b29]
src/dmd/dtemplate.d:7506 void 
dmd.dtemplate.TemplateInstance.trySemantic3(dmd.dscope.Scope*) 
[0x5647208fd156]
src/dmd/dsymbolsem.d:6293 void 
dmd.dsymbolsem.templateInstanceSemantic(dmd.dtemplate.TemplateInstance, dmd.dscope.Scope*, dmd.root.array.Array!(dmd.expression.Expression).Array*) [0x5647208e83da]
src/dmd/dtemplate.d:3090 void dmd.dtemplate.functionResolve(ref 
dmd.declaration.MatchAccumulator, dmd.dsymbol.Dsymbol, 
dmd.globals.Loc, dmd.dscope.Scope*, 
dmd.root.array.Array!(dmd.root.rootobject.RootObject).Array*, 
dmd.mtype.Type, 
dmd.root.array.Array!(dmd.expression.Expression).Array*, 
const(char)**) [0x5647208f0efa]
src/dmd/func.d:3227 dmd.func.FuncDeclaration 
dmd.func.resolveFuncCall(ref const(dmd.globals.Loc), 
dmd.dscope.Scope*, dmd.dsymbol.Dsymbol, 
dmd.root.array.Array!(dmd.root.rootobject.RootObject).Array*, 
dmd.mtype.Type, 
dmd.root.array.Array!(dmd.expression.Expression).Array*, 
dmd.func.FuncResolveFlag) [0x564720956943]
src/dmd/expressionsem.d:4991 
_ZN25ExpressionSemanticVisitor5visitEP7CallExp [0x564720932367]
src/dmd/expression.d:5169 _ZN7CallExp6acceptEP7Visitor 
[0x56472091be45]
src/dmd/expressionsem.d:12513 
_Z18expressionSemanticP10ExpressionP5Scope [0x56472094b263]
src/dmd/statementsem.d:205 
_ZN24StatementSemanticVisitor5visitEP12ExpStatement 
[0x5647209d05e7]
src/dmd/statement.d:485 _ZN12ExpStatement6acceptEP7Visitor 
[0x5647209ccb31]
src/dmd/statementsem.d:147 
_Z17statementSemanticP9StatementP5Scope [0x5647209d04cb]
src/dmd/statementsem.d:268 
_ZN24StatementSemanticVisitor5visitEP17CompoundStatement 
[0x5647209d08ae]
src/dmd/statement.d:628 _ZN17CompoundStatement6acceptEP7Visitor 
[0x5647209cd055]
src/dmd/statementsem.d:147 
_Z17statementSemanticP9StatementP5Scope [0x5647209d04cb]
src/dmd/semantic3.d:598 
_ZN16Semantic3Visitor5visitEP15FuncDeclaration [0x5647209c7149]
src/dmd/func.d:2930 _ZN15FuncDeclaration6acceptEP7Visitor 
[0x5647209560d9]
src/dmd/semantic3.d:82 _Z9semantic3P7DsymbolP5Scope 
[0x5647209c5b29]
src/dmd/semantic3.d:133 
_ZN16Semantic3Visitor5visitEP16TemplateInstance [0x5647209c5cd2]
src/dmd/dtemplate.d:7518 _ZN16TemplateInstance6acceptEP7Visitor 
[0x5647208fd19d]
src/dmd/semantic3.d:82 _Z9semantic3P7DsymbolP5Scope 
[0x5647209c5b29]
src/dmd/dtemplate.d:7506 void 
dmd.dtemplate.TemplateInstance.trySemantic3(dmd.dscope.Scope*) 
[0x5647208fd156]
src/dmd/dsymbolsem.d:6233 void 
dmd.dsymbolsem.templateInstanceSemantic(dmd.dtemplate.TemplateInstance, dmd.dscope.Scope*, dmd.root.array.Array!(dmd.expression.Expression).Array*) [0x5647208e8115]
src/dmd/dtemplate.d:3090 void dmd.dtemplate.functionResolve(ref 
dmd.declaration.MatchAccumulator, dmd.dsymbol.Dsymbol, 
dmd.globals.Loc, dmd.dscope.Scope*, 
dmd.root.array.Array!(dmd.root.rootobject.RootObject).Array*, 
dmd.mtype.Type, 
dmd.root.array.Array!(dmd.expression.Expression).Array*, 
const(char)**) [0x5647208f0efa]
src/dmd/func.d:3227 dmd.func.FuncDeclaration 
dmd.func.resolveFuncCall(ref const(dmd.globals.Loc), 
dmd.dscope.Scope*, dmd.dsymbol.Dsymbol, 
dmd.root.array.Array!(dmd.root.rootobject.RootObject).Array*, 
dmd.mtype.Type, 
dmd.root.array.Array!(dmd.expression.Expression).Array*, 
dmd.func.FuncResolveFlag) [0x564720956943]
src/dmd/expressionsem.d:1317 dmd.expression.Expression 
dmd.expressionsem.resolvePropertiesX(dmd.dscope.Scope*, 
dmd.expression.Expression, dmd.expression.Expression) 
[0x564720926a84]
src/dmd/expressionsem.d:1401 
_Z17resolvePropertiesP5ScopeP10Expression [0x564720926e8e]
src/dmd/expressionsem.d:1627 bool 
dmd.expressionsem.preFunctionParameters(dmd.dscope.Scope*, 
dmd.root.array.Array!(dmd.expression.Expression).Array*, 
const(bool)) [0x564720927752]
src/dmd/expressionsem.d:4530 
_ZN25ExpressionSemanticVisitor5visitEP7CallExp [0x564720930a0b]
src/dmd/expression.d:5169 _ZN7CallExp6acceptEP7Visitor 
[0x56472091be45]
src/dmd/expressionsem.d:12513 
_Z18expressionSemanticP10ExpressionP5Scope [0x56472094b263]
src/dmd/statementsem.d:205 
_ZN24StatementSemanticVisitor5visitEP12ExpStatement 
[0x5647209d05e7]
src/dmd/statement.d:485 _ZN12ExpStatement6acceptEP7Visitor 
[0x5647209ccb31]
src/dmd/statementsem.d:147 
_Z17statementSemanticP9StatementP5Scope [0x5647209d04cb]
src/dmd/statementsem.d:268 
_ZN24StatementSemanticVisitor5visitEP17CompoundStatement 
[0x5647209d08ae]
src/dmd/statement.d:628 _ZN17CompoundStatement6acceptEP7Visitor 
[0x5647209cd055]
src/dmd/statementsem.d:147 
_Z17statementSemanticP9StatementP5Scope [0x5647209d04cb]
src/dmd/semantic3.d:598 
_ZN16Semantic3Visitor5visitEP15FuncDeclaration [0x5647209c7149]
src/dmd/func.d:2930 _ZN15FuncDeclaration6acceptEP7Visitor 
[0x5647209560d9]
src/dmd/semantic3.d:82 _Z9semantic3P7DsymbolP5Scope 
[0x5647209c5b29]
src/dmd/expressionsem.d:5414 
_ZN25ExpressionSemanticVisitor5visitEP14DeclarationExp 
[0x56472093422c]
```


I'll try to run dmd under gdb in hope to get more details but may 
be above would be enough for compiler devs to ring a bell.


More information about the Digitalmars-d mailing list