8 dos Melhores Depuradores Linux para Engenheiros de Software

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
- GNU Debugger (GDB)
- Data Display Debugger (DDD)
- LLDB
- Delve
- Xdebug
- KDbg
- Valgrind
- 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.

Instale o GDB usando os seguintes comandos:
No Ubuntu/Debian-based distros:
sudo apt install gdbNo Fedora/RHEL distros:
sudo dnf install gdbNo Arch-based distros:
sudo pacman -S gdbDesde 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.

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 dddNo Fedora/RHEL distros:
sudo dnf install dddNo Arch-based distros:
yay -S dddQualquer 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 -si3. 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).

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 lldbNo Fedora/RHEL distros:
sudo dnf install lldbNo Arch-based distros:
sudo pacman -S lldb4. 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.

Para instalá-lo:
No Ubuntu/Debian-based distros:
sudo apt install delveNo Fedora/RHEL distros:
sudo dnf install delveNo Arch-based distros:
sudo pacman -S delve5. 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-xdebugNo Fedora/RHEL distros:
sudo dnf install php-xdebugNo Arch-based distros:
sudo pacman -S xdebug6. 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.

Para instalar o KDbg:
No Ubuntu/Debian-based distros:
sudo apt install kdbgNo Fedora/RHEL distros:
sudo dnf install kdbgNo Arch-based distros:
sudo pacman -S kdbgNota: 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 install7. 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.

Para instalar o Valgrind:
No Ubuntu/Debian-based distros:
sudo apt install valgrindNo Fedora/RHEL distros:
sudo dnf install valgrindNo Arch-based distros:
sudo pacman -S valgrind8. 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.

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 straceNo Fedora/RHEL distros:
sudo dnf install straceNo Arch-based distros:
sudo pacman -S straceO 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.