Программа Debug С++ в Linux

Я написал простую программу на С++, например:

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello.";
    return 0;
}

Теперь я хочу отладить его. Итак, какова будет команда для этого, чтобы мой контроль попадал в каждую строку?

Ответы

Ответ 1

Вы можете использовать gdb для этого:

$ gdb hello

Это запустится gdb и предложит вам, что делать дальше. Команда next выполняет одну строку источника и останавливается на следующей строке.

Я нашел базовый учебник GDB, который может быть полезен.

Ответ 2

Не забудьте скомпилировать исходный код с помощью опции -g. Например: g++ -g helloWorld.cc Это создаст исполняемый файл a.out. Вы сможете отладить ваш exe файл a.out с помощью команды gdb ./a.out. Еще один инструмент, который вы можете использовать ddd в основном графический интерфейс для gdb.

Удачи.

Ответ 3

Я всегда думал, что emacs предоставил удобный пользовательский интерфейс для gdb...

например.

  • % g++ hello.cc -g -o привет
  • emacs hello.cc
  • [В Emacs] Escape-x gdb
  • Emacs скажет: "Запустите gdb (вот так): gdb".
  • Добавьте свое двоичное имя ( "привет" ). (Например, "Запустить gdb (например, это): gdb hello".)
  • Перейдите в буфер hello.cc.
  • Используйте команду emacs 'gud-break', чтобы установить точку останова в gdb из вашего буфера hello.cc. (Обычно привязывается к "пространству C-x".)
  • Перейдите в буфер * gud-hello *.
  • Введите "run" в приглашении (gdb).
  • Используйте [ N] Далее или [ S] Шаг. Или [ C] Продолжить. [ BT] Обратный путь также полезен.
  • Обратите внимание, что происходит с маленьким треугольником в крайнем левом столбце вашего буфера hello.cc.

(Это должно быть достаточно, чтобы вы начали. Emacs - emacs, всегда есть больше возможностей...)

Ответ 4

Если вам нужен удобный для пользователя отладчик, вы можете использовать Kdbg, который в основном является интерфейсом gdb для KDE. Возможно, это не так сильно, как ddd, но проще начать с.

Ответ 5

В курсе программирования на C++, который я сделал в Швеции, была часть лаборатории об отладчике GNU. Я никогда не использовал его, но здесь есть статья, поясняющая основное использование, насколько я помню, в главе 2.