2014-01-09 4 views
6

Я успешно построил и установил ветку GDB Ian Buclaw's (ibuclaw) на github на моем Ubuntu 13.10 x86_64 с его компилятором по умолчанию GCC 4.8.1.Отладка с помощью GDB Невозможно выполнить поиск D Программные символы

Мне пришлось удалить файл ld из подкаталога bin в противном случае DMD жалуется на предмет sysroot в фазе ссылки.

Когда я скомпилирую свою тестовую программу и запускаю ее через GDB, у меня есть проблемы .

я могу сделать break main, бегать и GDB останавливается в начале main но когда я next я получаю нежелательные выходной

Single stepping until exit from function main, 
    which has no line number information. 
    0x00007ffff760ede5 in __libc_start_main() from 
    /lib/x86_64-linux-gnu/libc.so.6 

Не ibuclaw-х GDB должны работать здесь?

Моя тестовая программа была составлена ​​в

dmd -debug -g -gs -wi t_array.d -oft_array 

без каких-либо предупреждений, ни ошибок. Я также попытался притвориться C

dmd -debug -g -gc -gs -wi t_array.d -oft_array 

с таким же результатом.

Далее, когда я делаю b, за которым следует вкладка, большинство символов в список завершения не разминирован.

Моя тестовая программа выглядит как

import std.stdio, std.algorithm; 

void main(string args[]) { 
    int[] x; 
    writeln(x.sizeof); 

    if (x) { 
     writeln("Here!"); 
    } else { 
     writeln("There!"); 
    } 

    int xx[2]; 
    auto xc = xx; 
    xc[0] = 1; 
    writeln(xx); 
    writeln(xc); 
    int[2] xx_; 


    auto hit = x.find(1); 
    if (hit) { 
     writeln("Hit: ", hit); 
    } else { 
     writeln("No hit"); 
    } 
    int[2] z;     // arrays are zero initialized 
    writeln(z); 

    assert([].ptr == null); 
    assert("ab"[$..$] == []); 
    auto p = "ab"[$..$].ptr; 
    writeln(p); 
    assert(p != null); 
} 

ответ

3

хорошо работает для меня с MonoDevelop и GDB отладчик (не с помощью GDB Debuger для D), вы должны использовать команду запуска вместо разрыва магистрального. Более подробная информация на вашем форуме dlangs: http://forum.dlang.org/thread/[email protected]

+0

Все работает прямо сейчас! Просто замечательно! –

+0

Когда я запускаю его, как указано выше, вряд ли какой-либо символ D отображается правильно, когда вы делаете 'print SYMBOL' в GDB в отношении демпфирования имени и их значения. Это текущее состояние GDB ibuclaw или я что-то пропустил? –

+0

GDB еще не может развернуть все символы D. Iain Buclaw (основной разработчик проекта GDC) недавно сделал некоторые улучшения, которые вскоре, надеюсь, будут объединены в основной код GDB, что очень поможет нам. Вы пытались скомпилировать свою программу D с помощью GDC? – DejanLekic

Смежные вопросы