8 dos Melhores Depuradores Linux para Engenheiros de Software

Charset=invalidcharsetid 48

Os depuradores são essenciais para localizar bugs em programas. Eles fazem todo o trabalho de tentar encontrar problemas no seu código antes de ser hora de compilar, geralmente fornecendo mais informações do que o próprio compilador. O Linux, sendo um ecossistema principalmente de código aberto, possui uma infinidade desse tipo de aplicativo que funciona em várias linguagens e arquiteturas de processamento diferentes. Neste guia, vamos nos aprofundar diretamente no mundo dos depuradores Linux.

Índice

    1. GNU Debugger (GDB)
    1. Data Display Debugger (DDD)
    1. LLDB
    1. Delve
    1. Xdebug
    1. KDbg
    1. Valgrind
    1. strace

1. GNU Debugger (GDB)

O GNU Debugger, também conhecido como GDB, é um dos depuradores Linux mais poderosos disponíveis para programadores modernos. É uma ferramenta robusta com um conjunto extenso de recursos. O GDB suporta muitas linguagens de programação populares, incluindo C, C++, Go e Rust. Também funciona em várias 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 os seguintes comandos:

No Ubuntu/Debian-based distros:

sudo apt install gdb

No Fedora/RHEL distros:

sudo dnf install gdb

No Arch-based distros:

sudo pacman -S gdb

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. Digitando r, você executará seu programa através do depurador. Para iniciar o GDB com o programa carregado, basta digitar gdb no seu terminal seguido pelo caminho do programa.

Uma vez dentro, digitando help você receberá um catálogo bem organizado explicando tudo o que você pode fazer com este poderoso depurador!

2. Data Display Debugger (DDD)

Se mexer com comandos não é sua praia, mas você ainda adora os recursos que o GDB oferece, o DDD proporciona uma interface gráfica simples que fornece todas as suas funcionalidades em uma interface de apontar e clicar. É o GUI de 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 do GNU com uma interface gráfica!

Para instalar:

No Ubuntu/Debian-based distros:

sudo apt install ddd

No Fedora/RHEL distros:

sudo dnf install ddd

No Arch-based distros:

yay -S ddd

Qualquer sistema baseado em Arch terá que usar um helper AUR, já que o DDD não existe em seus repositórios oficiais. Alternativamente, você pode instalar o DDD em um sistema baseado em Arch sem um helper AUR:

sudo pacman -S --needed base-devel  
git clone https://aur.archlinux.org/ddd.git  
cd ddd  
makepkg -si

3. LLDB

O LLDB é parte do projeto LLVM. O conjunto LLVM tem ganhado popularidade, graças ao seu fluxo de trabalho eficiente. Também se tornou o depurador padrão para o Xcode do macOS e o Android Studio. Algumas das principais características do LLDB incluem suporte para várias integrações de compilador e depuração remota. Ele suporta as linguagens C (C, C++ e Objective-C).

Depurador Linux Lldb

Para aqueles que já estão familiarizados com os comandos básicos do GDB, o LLDB parecerá familiar. Digitando run ou r, você executa o programa, e digitando step ou s, você avança através de suas sub-rotinas.

Para instalá-lo:

No Ubuntu/Debian-based distros:

sudo apt install lldb

No Fedora/RHEL distros:

sudo dnf install lldb

No Arch-based distros:

sudo pacman -S lldb

4. Delve

O 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 próprio depurador é escrito em Go, assim fornecendo um ambiente de tempo de execução no mesmo ambiente do programa que você está testando.

O Delve opera no mesmo princípio que o GDB e o LLDB, exceto que possui um conjunto único de comandos que diferem significativamente dos outros dois. Basta digitar help assim que você entrar, e você terá uma lista completa de todas as opções de depuração que ele oferece.

Diferente de depuradores mais gerais para múltiplas linguagens, o Delve oferece mais comandos específicos para Go que permitem que você examine sua aplicação de forma mais granular enquanto ela está em execução.

Usando Delve para olhar em rotinas e threads Go específicas.

Para instalá-lo:

No Ubuntu/Debian-based distros:

sudo apt install delve

No Fedora/RHEL distros:

sudo dnf install delve

No Arch-based distros:

sudo pacman -S delve

5. Xdebug

Enquanto a maioria das pessoas aprende a despejar suas variáveis (conhecido nas comunidades PHP como “dump & die”) para descobrir o que há de errado em um determinado aspecto de seu código, há momentos em que você precisa de algo mais robusto que possa guiá-lo através de todas as suas rotinas. O Xdebug oferece isso em abundância para programadores PHP aspirantes e veteranos.

É um depurador Linux que avança através do código PHP linha por linha e mostra exatamente o que está acontecendo enquanto uma página da web é processada. O Xdebug também funciona em vários IDEs, incluindo o VSCode. Seus outros recursos incluem um profiler robusto, rastreador de pilha, e a capacidade de despejar o segmento de execução completo.

Para instalar o Xdebug:

No Ubuntu/Debian-based distros:

sudo apt install php-xdebug

No Fedora/RHEL distros:

sudo dnf install php-xdebug

No Arch-based distros:

sudo pacman -S xdebug

6. KDbg

O KDbg é um depurador GUI para o ambiente de desktop KDE. Como ele roda como uma interface frontal do GDB, assim como o DDD, você obtém todos os recursos do GDB junto a 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, assim como um painel completamente dedicado mostrando o que cada registrador de CPU está segurando. Isso não é tão fácil de visualizar em qualquer outro dos depuradores cobertos aqui.

Por causa disso, o KDbg é uma escolha fantástica para programadores de aplicativos nativos tradicionais, desde os que estão apenas começando a aprender até os mais veteranos.

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

Para instalar o KDbg:

No Ubuntu/Debian-based distros:

sudo apt install kdbg

No Fedora/RHEL distros:

sudo dnf install kdbg

No Arch-based distros:

sudo pacman -S kdbg

Nota: Se você estiver usando uma distribuição baseada em Ubuntu ou Debian e não encontrar o pacote para kdbg nos repositórios oficiais, aqui está exatamente o que você deve digitar para compilá-lo você mesmo:

sudo apt install build-essential cmake extra-cmake-modules qtbase5-dev libkf5i18n-dev libkf5iconthemes-dev libkf5xmlgui-dev  
git clone -b maint https://github.com/j6t/kdbg.git  
cd kdbg  
cmake .  
make  
sudo make install

7. Valgrind

O Valgrind é um depurador de memória muito sólido que oferece muitas ferramentas adicionais para análise de software. Funciona tanto no Linux quanto no Mac. Além disso, você pode usá-lo como um framework e criar ferramentas de análise dinâmica, como profilers. No geral, o 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:

No Ubuntu/Debian-based distros:

sudo apt install valgrind

No Fedora/RHEL distros:

sudo dnf install valgrind

No Arch-based distros:

sudo pacman -S valgrind

8. strace

O strace é uma utilidade de espaço do usuário para Unix que permite aos usuários rastrear chamadas de sistema e sinais diretamente do terminal.

Depurador Linux Strace

Os programadores podem usá-lo para despejar rastreamentos de pilha, filtrar chamadas de sistema, modificar códigos de retorno, extrair descritores de arquivo e muito mais.

Mais importante, o strace permite que você se anexe a programas em execução. Isso permite que você examine o que está acontecendo em qualquer software que você execute na sua máquina para aprender mais sobre o que pode estar causando um travamento.

Para instalar o strace:

No Ubuntu/Debian-based distros:

sudo apt install strace

No Fedora/RHEL distros:

sudo dnf install strace

No Arch-based distros:

sudo pacman -S strace

O Arsenal Aguarda

Com essas ferramentas, você pode explorar, testar e analisar seu código de formas que antes podiam parecer inacessíveis. Pode haver uma curva de aprendizado, mas vale muito a pena. Se você está sério sobre programação em Linux, aprender a usar seus depuradores economizará muito tempo a longo prazo.

Agora que você tem os melhores depuradores Linux, é hora de encontrar as melhores distros Linux para desenvolvedores e programadores.