Отладка C ++ программы в Linux - PullRequest
19 голосов
/ 16 декабря 2008

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

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

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

Ответы [ 5 ]

29 голосов
/ 16 декабря 2008

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

$ gdb hello

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

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

17 голосов
/ 16 декабря 2008

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

Удачи

6 голосов
/ 16 декабря 2008

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

1007 * Е.Г. *

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

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

3 голосов
/ 16 декабря 2008

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

3 голосов
/ 16 декабря 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...