2012-05-10 27 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編譯)。

相關問題