Red Hat Training

A Red Hat training course is available for RHEL 8

7.2. Habilitando a depuração de aplicações C e C++ com GCC

Como a informação de depuração é grande, ela não é incluída em arquivos executáveis por padrão. Para permitir a depuração de suas aplicações C e C++ com ela, você deve instruir explicitamente o compilador a criá-la.

Para permitir a criação de informações de depuração com GCC ao compilar e vincular código, use a opção -g:

$ gcc ... -g ...
  • Otimizações realizadas pelo compilador e pelo linker podem resultar em código executável que é difícil de relacionar com o código fonte original: variáveis podem ser otimizadas, loops desenrolados, operações fundidas com as operações ao redor, etc. Isto afeta negativamente a depuração. Para melhorar a experiência de depuração, considere definir a otimização com a opção -Og. Entretanto, mudar o nível de otimização altera o código executável e pode mudar o comportamento real, incluindo a remoção de alguns bugs.
  • Para incluir também definições macro nas informações de depuração, use a opção -g3 ao invés de -g.
  • A opção -fcompare-debug GCC testa o código compilado pelo GCC com informações de debug e sem informações de debug. O teste passa se os dois arquivos binários resultantes forem idênticos. Este teste garante que o código executável não seja afetado por nenhuma opção de depuração, o que garante ainda mais que não haja bugs ocultos no código de depuração. Note que o uso da opção -fcompare-debug aumenta significativamente o tempo de compilação. Consulte a página do manual GCC para obter detalhes sobre esta opção.

Recursos adicionais