Tag: d2

触发“分段错误”的超奇怪问题

我不会深入研究这个问题(代码库已经有数千行而且相当复杂),所以我会尝试将…“窗口”缩小到我发现的位置。 这是触发“分段错误”的例程: extern (C) { void* Statements_new() { return cast(void*)(new Statements()); } void Statements_add(Statements s, Statement st) { //writeln(“In here”); if (s is null) writeln(“StatemenTS are null”); else writeln(“not null : “~ typeid(s).name); if (st is null) writeln(“statement is null”); else writeln(“not null : ” ~ typeid(st).name); s.add(st); //writeln(“Out of here”); } } 几点说明: 声明的方法只是“绑定”,因此可以直接从C代码(实际上是Bison)调用本机例程。 […]