8 dos melhores depuradores Linux para engenheiros de software

8 dos melhores depuradores Linux para engenheiros de software
Conjunto de caracteres=charsetid inválido 48

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.

Demonstração do GDB executando um programa de teste

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.

DDD executando um programa rudimentar e saindo.

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).

Linuxdebugger Lldb

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.

Delve depurador executando um programa com código rudimentar.

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.

Usando o Delve para examinar rotinas e threads específicos do Go.

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.

Saída do Xdebug durante uma sessão de depuração de alguns simples

É 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.

KDbg depurando um programa em execução escrito em C.

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.

Valgrind detectando um vazamento de memória em um programa.

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.

Strace do depurador Linux

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

O seu endereço de email não será publicado. Campos obrigatórios marcados com *