Como usar o GDB para rastrear a biblioteca C ++?

0

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

    
por Scienix 16.09.2014 / 16:36

1 resposta

0

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 .

    
por Pyrophorus 17.09.2014 / 12:07