2011-01-24 86 views
2



简短问题:在gdb(我有gdb 7.2)中是否支持D2?

长的故事:我编下一个小程序...D2和gdb问题

 

// file main.d 
int glVar = 0xAAAAAAAA; 

void main() 
{ 
glVar = 0xBBBBBBBB; 
} 
 

...使用命令 “DMD-GC -debug main.d”;
然后我加载到GDB,并试图对其进行调试:

 
[email protected]:~/proj/d_gdb_test$ gdb main 
GNU gdb (GDB) 7.2-ubuntu 
Copyright (C) 2010 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. Type "show copying" 
and "show warranty" for details. 
This GDB was configured as "i686-linux-gnu". 
For bug reporting instructions, please see: 
... 
Reading symbols from /home/vnm/proj/d_gbb_test/main...done. 
(gdb) b main 
Breakpoint 1 at 0x804b667 
(gdb) r 
Starting program: /home/vnm/proj/d_gbb_test/main 
[Thread debugging using libthread_db enabled] 

Breakpoint 1, 0x0804b667 in main() 
(gdb) info line 
No line number information available. 
(gdb) info variables glVar 
All variables matching regular expression "glVar": 

File main.d: 
int _D4main5glVari; 

为什么GDB不能显示在线信息和为什么它显示了在错位的形式符号?这是软件问题还是我做错了什么?

+0

这可能是相关的:http://stackoverflow.com/questions/1581560/how-do-i-get-gdb-working-with-d-programs-under-linux – jgottula 2011-01-24 23:12:08

回答

4

gdb支持D从7.2开始。所以,你可以用gdb 7.2来调试D程序。

现在,这并不意味着支持是完美的 - 事实上远非如此。例如,我不确定你能否正确打印字符串。如果它不去除D符号,这并不令人意外。所以,它有效,但它远非完美。

+0

一些在digitalmars.D中的主题的澄清.learn新闻组:http://www.mail-archive.com/[email protected]/msg09765.html – cybevnm 2011-01-26 21:02:56