GDB CheatSheet
Baixe com: bash -c "$(wget https://gef.blah.cat/sh -O -)"
E execute com: gdb ./meu_programa
Para navegação:
break main,run- Define ponto de parada e rodacontinue- Avança até encontrar um breakpoint ou fim do programa. Não para entre instruções.next- Executa próxima linha do código fonte, mas pula chamadas de funçãostep- Executa próxima linha do código fonte, mas entra em chamadas de funçãostepi- Avança instrução por instrução Assembly, entrando em chamadas de função
Para visualizar informação:
disass main- Mostra código assemblyb *main+25(+25 é relativo ao início do código) oub *0x08048414(endereço de memória da instrução)info breakpoints- Mostra breakpointsdelete 2oud 2- Deleta breakpointb *putser- Coloca breakpoint em funçãox- Mostra o conteúdo do endereço dado:x/a- Endereçox/x- Hexadecimalx/10c- Número de caracteresx/s- Stringx/g- Qwordx/w- Dwordx/s $rbp - 0xc- Valor do endereço rbp-0xc
p- Imprime conteúdo/d- Inteiro/x- Hex
info registers- Visualizar o conteúdo dos registradores:
Para ver o stack frame (seção da stack alocada para uma única função)
info frame- Mostra frame da stack da função atualinfo files- Mostra arquivos do programaset 0x08048451 = 0xfacade- Muda valor armazenado no endereço!command- Executa comandos de shell normais, como!clearou!ls
Abas
- Registers - Conteúdo dos registradores da CPU
- Stack - Stack do programa na memória. Mostra apenas o Stack Frame da função atual.
- Code - Código em assembly. Mostra linha a ser executada
- Arguments - Funções prestes a serem chamadas
- Threads - Informações de threads relacionadas ao SO
- Trace - Mostra pilha de chamadas de funções (call stack)