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);
}
Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top