"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que o GDB relata um erro de arquivo ausente ao depurar exceções C++ no Ubuntu?

Por que o GDB relata um erro de arquivo ausente ao depurar exceções C++ no Ubuntu?

Publicado em 2024-11-14
Navegar:342

Why Does GDB Report a Missing File Error When Debugging C   Exceptions in Ubuntu?

GDB exibe erro de arquivo ausente para o código-fonte da biblioteca

Ao usar o GDB para depurar exceções C, os usuários podem encontrar uma mensagem de erro indicando uma falta arquivo, como "Esse arquivo ou diretório não existe" para "raise.c." Este erro pode ocorrer mesmo se a exceção for tratada corretamente.

Solução: obter código-fonte da biblioteca e informações de depuração

Para resolver esse problema, é necessário obter o código-fonte e informações de depuração para a biblioteca relevante, neste caso, libc6. O Ubuntu fornece o pacote debuginfo para essa finalidade.

Etapas para depurar o código-fonte da biblioteca C:

  1. Instale a versão debuginfo da libc6: sudo apt install libc6- dbg.
  2. Configure o sistema de pacotes para baixar pacotes de código-fonte:

    • Instale o dpkg-dev: sudo apt install dpkg-dev.
    • Descomente " deb-src" linhas em /etc/apt/sources.list se necessário.
  3. Baixe o código-fonte:

    • Crie um diretório: / opt/src.
    • Baixar o código-fonte: apt source libc6.
    • Observe o diretório do código-fonte (por exemplo, /opt/src/glibc-2.23).
  4. Ajuste o diretório do código-fonte do GDB:

    • Identifique o diretório do código-fonte esperado usando a fonte de informações (gdb).
    • Mova ou crie um link simbólico do código-fonte para o esperado local ou defina um caminho substituto: (gdb) definir caminho substituto /local esperado /local-real.

Depois que essas etapas forem concluídas, o GDB será capaz de acesse o código-fonte correto e forneça informações de depuração precisas para a exceção.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3