.. | ||
README.org |
Curso prático de introdução ao GDB
2. Instalação e configurações de início
Objetivos
- Como instalar o GDB nas principais distribuições GNU/Linux;
- Conhecer algumas possibilidades de customização.
Instalação
Debian e derivados
sudo apt update sudo apt install gdb
O pacote
gdb-doc
instala o manual do GDB, mas ele não é instalado por padrão no Debian por estar na seçãonon-free/doc
.
O pacote build-essential
instala outras ferramentas úteis para desenvolvimento,
incluindo o gcc
(GNU Compiler Collection), o make
e as dependências mais comuns.
sudo apt install build-essential
Fedora e derivados
sudo dnf install gdb
Para um ambiente completo de desenvolvimento:
sudo dnf groupinstall "Development Tools"
Arch Linux e derivados
sudo pacman -S gdb
O grupo base-devel
contém ferramentas úteis para compilação e depuração:
sudo pacman -S base-devel
Verificação da instalação
Versão:
gdb --version
Ajuda:
gdb --help
Configurações de início
O GDB pode ser configurado por meio de arquivos de inicialização lidos automaticamente ao iniciar. Esses arquivos permitem predefinir opções úteis, automatizar tarefas e estender o ambiente de depuração.
Configuração por usuário
O arquivo ~/.gdbinit
:
O GDB executa esse arquivo sempre que for iniciado, a menos que seja desativado
com a opção -nh
.
Configuração de exemplo:
set pagination off # Não pausa a saída do GDB
set confirm off # Não pede confirmação para alguns comandos
set print pretty on # Formata a apresentação de structs e arrays
set history save on # Salva histórico entre seções
set history size 1000 # Tamanho máximo do histórico
set disassembly-flavor intel # Define a sintaxe Intel na desmontagem de binários
Também pode ser interessante omitir as mensagens de versão no início do GDB,
o que é feito no arquivo ~/.config/gdb/gdbearlyinit
:
set startup-quietly on
O arquivo
gdbearlyinit
é carregado antes do GDB executar outros arquivos de início e só recebe definições que afetam o seu próprio comportamento.
Configuração por projeto
Arquivo .gdbinit
no diretório do projeto (configuração local):
Se existir um arquivo .gdbinit
no diretório corrente, o GDB pode executá-lo,
mas isso é bloqueado por padrão:
:~/projeto$ gdb Warning: File ".gdbinit" auto-loading has been declined by your `auto-load safe-path'...
Para permitir o carregamento, temos que adicionar o caminho do projeto ao arquivo do usuário:
echo "add-auto-load-safe-path $(pwd)" >> ~/.gdbinit
Isso é muito utilizado para definir breakpoints automáticos, carregar símbolos extras, configurar scripts, etc.
Configuração global
O arquivo de configuração do sistema, /etc/gdb/gdbinit
, é lido antes de
~/.gdbinit
e pode ser usado para definir opções globais em ambientes
compartilhados (ex: laboratórios ou servidores educacionais).
Comandos customizados
Nos arquivos .gdbinit
, também é possível definir comandos customizados
com a sintaxe:
define COMANDO LISTA DE COMANDOS end document COMANDO DESCRIÇÃO end
Scripts em Python
É possível estender o GDB usando scripts em Python no .gdbinit
, mas isso
foge do escopo deste curso.