2012-05-10 43 views
4

我正在玩gtkd包装生成器,并运行到一个std.conv异常,我无法设法得到任何符号调试信息。我编译与调试符号:d2:没有得到任何回溯信息

$ dmd -gc -debug utils/HTODConvert.d utils/WrapperIF.d utils/funct.d utils/DefReader.d utils/GtkWrapper.d utils/HtmlStrip.d utils/IndentedStringBuilder.d utils/convparms.d utils/GtkDClass.d -ofgtkwrap 

但回溯只是一个内存地址的列表:

[email protected]/usr/include/d/std/conv.d(1779): Unexpected ' ' when converting from type string to type int 
---------------- 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x805c4ab] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x805c57a] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x806d49e] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x806924e] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x8068c4a] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x8066aed] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x8066824] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x806388f] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x806367c] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x805e988] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x805e910] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x805e793] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x805d6f5] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x8060176] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x8071140] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x8070c50] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x8071182] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x8070c50] 
/home/martin/code/d/GtkD/wrap/gtkwrap() [0x8070c04] 
/lib/libc.so.6(__libc_start_main+0xf5) [0xb7dce3d5] 

这是在32位Linux

$ uname -a 
Linux mercury 3.3.2-1-ARCH #1 SMP PREEMPT Sat Apr 14 10:08:43 UTC 2012 i686 Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz GenuineIntel GNU/Linux 

$ dmd -v 
DMD32 D Compiler v2.059 

回答

8

确保您的dmd.conf在其DFLAGS中有-L--export-dynamic。我相信dmd提供的版本有它,但如果没有,你不会得到函数名,所以很有可能你的dmd.conf中缺少它。

+0

谢谢,就是这样! –

1

启动程序与GDB和你会得到一个适当的堆栈跟踪,不幸的是我不知道有任何其他方式(你需要用-g和-gc编译)。