Segmentation fault in DMD - how to debug?

Andrey Zherikov andrey.zherikov at gmail.com
Thu Sep 29 01:01:54 UTC 2022


On Thursday, 29 September 2022 at 00:48:03 UTC, Andrey Zherikov 
wrote:
> I actually see that DMD is very unstable.

The same code fails to build on Ubuntu:
```
Starting program: /usr/bin/dmd -debug -cov -g -unittest -w 
-version=Have_argparse -Isource/ source/argparse/package.d -c 
-of.dub/build/argparse-test-library-unittest-cov-linux.posix-x86_64-dmd_v2.100.0-2270E3354D7B3AAE3038EDF467033FBF/package_bcdb8bae.o -vcolumns
[Thread debugging using libthread_db enabled]
Using host libthread_db library 
"/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGILL, Illegal instruction.
0x00005555556b67c0 in 
ParseTimeVisitor<ASTCodegen>::visit(Expression*) ()

(gdb) where
#0  0x00005555556b67c0 in 
ParseTimeVisitor<ASTCodegen>::visit(Expression*) ()
#1  0x000055555587361a in S2irVisitor::visit(CompoundStatement*) 
()
#2  0x0000555555869fea in S2irVisitor::visit(ScopeStatement*) ()
#3  0x000055555586c396 in S2irVisitor::visit(IfStatement*) ()
#4  0x000055555586c528 in S2irVisitor::visit(IfStatement*) ()
#5  0x000055555587361a in S2irVisitor::visit(CompoundStatement*) 
()
#6  0x0000555555869fea in S2irVisitor::visit(ScopeStatement*) ()
#7  0x000055555586b477 in S2irVisitor::visit(ForStatement*) ()
#8  0x000055555587361a in S2irVisitor::visit(CompoundStatement*) 
()
#9  0x000055555587361a in S2irVisitor::visit(CompoundStatement*) 
()
#10 0x00005555558679da in 
FuncDeclaration_toObjFile(FuncDeclaration*, bool) ()
#11 0x000055555584e0b1 in 
toObjFile::ToObjFile::visit(TemplateInstance*) ()
#12 0x00005555558ce23e in genObjFile(Module*, bool) ()
#13 0x00005555558e584e in dmd.mars.tryMain(ulong, const(char)**, 
ref dmd.globals.Param) ()
#14 0x00005555558f27d1 in D main ()
```


More information about the Digitalmars-d mailing list