Как использовать GDB для трассировки библиотеки C++?

Недавно, я хочу использовать 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

0
задан 18 September 2014 в 17:22

1 ответ

Вам нужно debugging files пакет stdlibc ++, Вы используете, и дополнительно исходные файлы. Они доступны через диспетчер пакетов или apt-get.

0
ответ дан 7 October 2019 в 02:27

Другие вопросы по тегам:

Похожие вопросы: