При отладке с помощью GDB Невозможно выполнить поиск общих программных символов

StackOverflow https://stackoverflow.com//questions/21027517

  •  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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top