Depuração com GDB não pode pesquisar símbolos do programa D
-
21-12-2019 - |
Pergunta
Eu construí e instalei com sucesso a filial GDB de Ian Buclaw (ibuclaw) no Github no meu Ubuntu 13.10 x86_64 com seu compilador padrão GCC 4.8.1.
tive que remover o arquivo ld
de bin
Sub-diretório, caso contrário, o DMD reclama de uma coisa de sysroot na fase de link.
Quando compilar meu programa de teste e o executo no GDB, tenho problemas.
eu posso fazer break main
, execute e o GDB para no início de main
mas quando eu faço next
Eu recebo a seguinte saída indesejada
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
O GDB do ibuclaw não deveria funcionar aqui?
Meu programa de teste foi compilado como
dmd -debug -g -gs -wi t_array.d -oft_array
sem quaisquer avisos nem erros.Eu também tentei fingir ser C
dmd -debug -g -gc -gs -wi t_array.d -oft_array
com o mesmo resultado.
Além disso, quando eu faço b
Seguido pela guia, a maioria dos símbolos da lista de conclusão não é desmcançada.
Meu programa de teste se parece com
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);
}
Solução
Funciona bem para mim com o depurador monodevelop e GDB (não com o depurador gdb para D), você deve usar o comando start em vez de break main.Mais detalhes no seu tópico do fórum dlangs:http://forum.dlang.org/thread/avbpulzptddlekkczwse@forum.dlang.org