GDB - символы отладки
А Debugging Symbol Tableсопоставляет инструкции в скомпилированной двоичной программе с их соответствующей переменной, функцией или строкой в исходном коде. Это сопоставление может быть примерно таким:
Программная инструкция ⇒ имя элемента, тип элемента, исходный файл, номер строки.
Таблицы символов могут быть встроены в программу или сохранены в виде отдельного файла. Поэтому, если вы планируете отлаживать свою программу, необходимо создать таблицу символов, которая будет содержать необходимую информацию для отладки программы.
Мы можем сделать следующие выводы о таблицах символов:
Таблица символов работает для конкретной версии программы - при изменении программы необходимо создать новую таблицу.
Отладочные сборки часто больше и медленнее, чем розничные (не отладочные) сборки; Отладочные сборки содержат таблицу символов и другую вспомогательную информацию.
Если вы хотите отлаживать двоичную программу, которую не скомпилировали сами, вы должны получить таблицы символов у автора.
Чтобы GDB мог читать всю эту информацию построчно из таблицы символов, нам нужно скомпилировать ее немного иначе. Обычно мы компилируем наши программы как:
gcc hello.cc -o hello
Вместо этого нам нужно скомпилировать с флагом -g, как показано ниже:
gcc -g hello.cc -o hello