Недавно, я хочу использовать GDB для отладки моей программы C++. Но я нахожу, когда я использую CTRL+X+A для наблюдения исходного кода моей программы, это не может показать код библиотеки C++. Например, когда я хочу проследить "cout", это, dosen't показывают мне код класса, это просто пропускает строку "cout", Так, что я должен сделать для трассировки библиотеки C++? Я должен установить исходный пакет кода libstdc ++ как источник установки eglibc?
Это - код примера программа C++:
#include <iostream>
int main(void)
{
std::cout << "Hello World!" << std::endl;
return 0;
}
Compling с:
g++ test.cpp -g
Обновление:
Хорошо, я установил gcc исходный файл. Но когда я выполняю gdb, он ищет символы в/build/buildd/gcc-4.8-4.8.2/... Это не соответствие со значением по умолчанию gcc имя исходного файла. И путь по умолчанию gdb отличается от каталога gcc. Например, когда gdb загружает 'cout', он ищет в /build/buildd/gcc-4.8-4.8.2/build/x86_64-linux-gnu/libstdc++-v3/include
. Но значение по умолчанию /build/buildd/gcc-4.8.2/libstdc++-v3/include/std
, Как решить это?
Исходный файл GCC устанавливает с:
sudo apt-get install gcc-4.8-source
(Когда я работаю sudo apt-get source libstdc++
, перекомментарии как это), Затем:
sudo tar -C /build/buildd -xf /usr/src/gcc-4.8/gcc-4.8.2.tar.xz
BTW, Там, кажется, та же ошибка как https://bugs.launchpad.net/ubuntu / + source/gdb / + ошибка/921839
Вам нужно debugging files
пакет stdlibc ++, Вы используете, и дополнительно исходные файлы. Они доступны через диспетчер пакетов или apt-get
.