При отладке с помощью GDB Невозможно выполнить поиск общих программных символов
-
21-12-2019 - |
Вопрос
Я успешно собрал и установил ветку GDB Ian Buclaw (ibuclaw) на github в моем Ubuntu 13.10 x86_64 с ее компилятором по умолчанию GCC 4.8.1.
Мне пришлось удалить этот файл 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
Разве GDB от ibuclaw не должен работать здесь?
Моя тестовая программа была скомпилирована следующим образом
dmd -debug -g -gs -wi t_array.d -oft_array
без каких-либо предупреждений или ошибок.Я также пытался притворись Си
dmd -debug -g -gc -gs -wi t_array.d -oft_array
с тем же результатом.
Далее, когда я делаю b
далее следует tab, большинство символов в
списке завершения не разбираются.
Моя тестовая программа выглядит следующим образом
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);
}
Решение
У меня хорошо работает с monodevelop и GDB debugger (не с gdb debuger для D), вы должны использовать start command вместо break main.Более подробная информация в теме вашего форума dlangs:http://forum.dlang.org/thread/avbpulzptddlekkczwse@forum.dlang.org