Você precisa do pacote debugging files
do stdlibc ++ que está usando e, opcionalmente, dos arquivos de origem. Eles estão disponíveis através do gerenciador de pacotes ou apt-get
.
Recentemente, quero usar o GDB para depurar meu programa C ++. Mas eu acho que quando eu uso CTRL + X + A para ver o código-fonte do meu programa, ele não pode mostrar o código da biblioteca de C ++. Por exemplo, quando eu quero rastrear "cout", ele não me mostra o código da classe, apenas pula a linha "cout", então, o que devo fazer para rastrear a biblioteca C ++? Devo instalar o pacote de código souce de libstdc ++ como o eglibc de origem de instalação?
Este é o código do programa C ++ de exemplo:
#include <iostream>
int main(void)
{
std::cout << "Hello World!" << std::endl;
return 0;
}
Cumprindo:
g++ test.cpp -g
Atualizar :
OK, eu instalei o arquivo de origem do gcc. Mas quando executo o gdb, ele procura símbolos em /build/buildd/gcc-4.8-4.8.2/...Isso não combina com o nome padrão do arquivo de origem do gcc. E o caminho padrão do gdb é diferente do diretório do gcc. Por exemplo, quando o gdb carrega o 'cout', ele pesquisa em /build/buildd/gcc-4.8-4.8.2/build/x86_64-linux-gnu/libstdc++-v3/include
. Mas o padrão é /build/buildd/gcc-4.8.2/libstdc++-v3/include/std
, como resolver isso?
Instalação do arquivo de origem do GCC com:
sudo apt-get install gcc-4.8-source
(Quando eu corro sudo apt-get source libstdc++
, é recompensado assim)
Então:
sudo tar -C /build/buildd -xf /usr/src/gcc-4.8/gcc-4.8.2.tar.xz
BTW, parece haver um mesmo erro, como o link
Você precisa do pacote debugging files
do stdlibc ++ que está usando e, opcionalmente, dos arquivos de origem. Eles estão disponíveis através do gerenciador de pacotes ou apt-get
.