linux - d2 : not getting any backtrace info

标签 linux d backtrace

我正在使用 gtkd 包装器生成器,遇到了一个 std.conv 异常,我根本无法设法获得任何符号调试信息。我用调试符号编译:

$ 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 

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

std.conv.ConvException@/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

最佳答案

确保您的 dmd.conf 在其 DFLAGS 中包含 -L--export-dynamic。我相信 dmd 提供的版本有它,但如果没有它,您将无法获得函数名称,因此您的 dmd.conf 中很可能缺少它。

关于linux - d2 : not getting any backtrace info,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10527901/

相关文章:

linux - Ubuntu 中的 SVN 客户端安装

assembly - 为什么由D编译的main()在64位计算机上具有32位返回值?

reference - D 中的赋值操作会复制对象吗?

linux - 为什么 "echo l >/proc/sysrq-trigger"调用跟踪输出总是相似的?

c++ - SymFromAddr 返回 ERROR_INVALID_ADDRESS 标志,如何在 mingw 中获取堆栈跟踪?

Prolog 剪切行为对我来说没有意义

c++ - 静态链接 DCMTK 库

linux - bash 选择命令

php exec 或 shell_exec 在 linux 中脚本执行结束后不终止其进程

binding - 在 D 中使用 Windows 库的正确方法?