8 dos melhores depuradores Linux para engenheiros de software
Os depuradores são essenciais para localizar bugs em programas. Eles fazem o trabalho braçal de tentar encontrar problemas em seu código antes da hora de compilá-lo, geralmente fornecendo mais informações do que o próprio compilador forneceria. O Linux, sendo um ecossistema principalmente de código aberto, possui uma infinidade desses tipos de aplicativos que funcionam em diversas linguagens e arquiteturas de processamento diferentes. Neste guia, mergulharemos direto no mundo dos depuradores Linux.
1. Depurador GNU (GDB)
O GNU Debugger, também conhecido como GDB, é um dos depuradores Linux mais poderosos disponíveis para os programadores modernos. É uma ferramenta robusta com um extenso conjunto de recursos. O GDB oferece suporte a muitas linguagens de programação populares, incluindo C, C++, Go e Rust. Ele também funciona em diversas arquiteturas de CPU, como x86, x86-64, ARM, PowerPC, SPARC e MIPS.
Instale o GDB usando estes comandos:
Em distros baseadas em Ubuntu/Debian:
Nas distribuições Fedora/RHEL:
Em distros baseadas em Arch:
Desde que você compile usando GCC com símbolos de depuração, você pode percorrer as instruções de um programa enquanto ele é executado digitando s. Digitar r executará seu programa através do depurador. Para iniciar o GDB com o programa carregado, basta digitar gdb
em seu terminal seguido do caminho do programa.
Depois de entrar, digite help
para obter um catálogo bem organizado explicando tudo o que você pode fazer com esse depurador poderoso!
2. Depurador de exibição de dados (DDD)
Se mexer com comandos não é sua praia, mas você ainda adora os recursos que o GDB tem a oferecer, DDD fornece um gráfico simples front-end que fornece todos os seus recursos em uma interface de apontar e clicar. É a GUI do depurador Linux por excelência.
A UI pode parecer um pouco simples, mas é tão poderosa quanto qualquer outro depurador. A diferença aqui é que você obtém o depurador de assinatura GNU com uma interface gráfica!
Para instalá-lo:
Em distros baseadas em Ubuntu/Debian:
Nas distribuições Fedora/RHEL:
Em distros baseadas em Arch:
Qualquer coisa baseada em Arch terá que usar um auxiliar AUR, já que DDD não existe em seus repositórios oficiais. Alternativamente, você pode instalar o DDD em um sistema baseado em Arch sem um auxiliar AUR:
3. LDDB
LLDB faz parte do projeto LLVM. O conjunto LLVM vem ganhando popularidade graças ao seu fluxo de trabalho eficiente. Ele também se tornou o depurador padrão para Xcode e Android Studio do macOS. Alguns dos principais recursos do LLDB incluem suporte para várias integrações de compiladores e depuração remota. Ele suporta as linguagens C (C, C++ e Objective-C).
Para aqueles que já estão familiarizados com os comandos básicos do GDB, o LLDB parecerá familiar. Digitar run
ou r
executa o programa e digitar step
ou s
percorre suas sub-rotinas.
Para instalá-lo:
Em distros baseadas em Ubuntu/Debian:
Nas distribuições Fedora/RHEL:
Em distros baseadas em Arch:
4. Aprofunde-se
Delve é um depurador Linux simples, mas rico em recursos, para a linguagem de programação Go do Google. Você pode usá-lo para interagir com seu programa em tempo de execução e manipular coisas como goroutines e pilhas. O depurador em si é escrito em Go, fornecendo assim um tempo de execução no mesmo ambiente do programa que você está testando.
O Delve opera com o mesmo princípio do GDB e do LLDB, exceto pelo fato de possuir um conjunto único de comandos que diferem muito dos outros dois. Basta digitar help
quando entrar e você terá uma lista completa de todas as opções de depuração oferecidas.
Ao contrário dos depuradores mais gerais para vários idiomas, o Delve oferece comandos mais específicos do Go que permitem que você acesse seu aplicativo em um nível mais granular enquanto ele é executado.
Para instalá-lo:
Em distros baseadas em Ubuntu/Debian:
Nas distribuições Fedora/RHEL:
Em distros baseadas em Arch:
5. Xdebug
Embora a maioria das pessoas aprenda a despejar suas variáveis (conhecidas nas comunidades PHP como “dump & die”) para descobrir o que há de errado com um determinado aspecto do seu código, há momentos em que você precisa de algo mais pesado que pode orientá-lo em todas as suas rotinas. Xdebug oferece isso de sobra para programadores PHP aspirantes e veteranos.
É um depurador Linux que percorre o código PHP linha por linha e mostra exatamente o que está acontecendo conforme uma página da web é processada. O Xdebug também funciona em vários IDEs, incluindo VSCode. Seus outros recursos incluem um criador de perfil robusto, rastreador de pilha e a capacidade de despejar o segmento de execução completo.
Para instalar o Xdebug:
Em distros baseadas em Ubuntu/Debian:
Nas distribuições Fedora/RHEL:
Em distros baseadas em Arch:
6.KDbg
KDbg é um depurador GUI para o ambiente de desktop KDE. Como ele funciona como um front-end do GDB como o DDD, você obtém todos os recursos do GDB junto com uma interface de usuário intuitiva. Programadores mais experientes certamente apreciarão uma visão clara de todas as variáveis enquanto percorrem seu código, bem como um painel totalmente dedicado mostrando o que cada registro da CPU contém. Isso não é tão fácil de visualizar em nenhum dos outros depuradores abordados aqui.
Por causa disso, o KDbg é uma escolha fantástica para programadores de aplicativos nativos tradicionais, desde os girinos que estão apenas começando a aprender até os veteranos mais experientes.
Para instalar o KDbg:
Em distros baseadas em Ubuntu/Debian:
Nas distribuições Fedora/RHEL:
Em distros baseadas em Arch:
7. Portão eleitoral
Valgrind é um depurador de memória sólido que oferece muitas ferramentas adicionais para análise de software. Ele roda em Linux e Mac. Além disso, você pode usá-lo como uma estrutura e criar ferramentas de análise dinâmica, como criadores de perfil. No geral, Valgrind é uma excelente escolha para profissionais devido ao seu rico conjunto de recursos e variedade de ferramentas que monitoram a memória de um programa enquanto ele é executado.
Para instalar o Valgrind:
Em distros baseadas em Ubuntu/Debian:
Nas distribuições Fedora/RHEL:
Em distros baseadas em Arch:
8. traço
strace é um utilitário de espaço de usuário para Unix que permite aos usuários rastrear chamadas e sinais do sistema diretamente do terminal.
Os programadores podem usá-lo para despejar rastreamentos de pilha, filtrar chamadas de sistema, modificar códigos de retorno, extrair descritores de arquivos e muito mais.
Mais importante ainda, o strace permite que você se conecte a programas em execução. Isso permite que você fique sob o controle de qualquer software executado em sua máquina para saber mais sobre o que pode estar causando o travamento.
Para instalar o strace:
Em distros baseadas em Ubuntu/Debian:
Nas distribuições Fedora/RHEL:
Em distros baseadas em Arch:
O Arsenal espera
Com essas ferramentas, você pode cutucar, estimular e analisar seu código de maneiras que antes pareciam inacessíveis. Pode haver uma certa curva de aprendizado a seguir, mas vale a pena. Se você leva a sério a programação em Linux, aprender como usar seus depuradores economizará muito mais tempo a longo prazo.
Agora que você tem os melhores depuradores Linux, é hora de encontrar as melhores distribuições Linux para desenvolvedores e programadores.
Crédito da imagem: Todas as imagens do autor.
Deixe um comentário