GDB
Entre no GDB antes de continuar. Para acessar, basta executar o comando gdb
. Caso queira instale também o peda
, para deixar o GDB com um visual mais amigável.
Outro recurso que podemos utilizar para deixar o GDB mais amigável é executando os comandos abaixo:
NOTA: Caso queira utilizar uma ferramenta GUI, utilize o edb
, com o seguinte comando: edb --run <file>
Configurando o gdb
Para deixarmos o gdb configurado para abrir sempre em formato Intel, execute os comandos:
Comandos Básicos
Exibindo o código fonte
IMPORTANTE: Essa opção provavelmente não estará disponível, pois ninguém quer deixar um programa compilado que deixe exibir o códgo fonte. Para deixar essa leitura disponível, utilize o seguinte comando para compilar: gcc -g <file.c> -o <file>
Exibindo as variáveis
Vendo as functions do binário
Abaixo, algumas maneiras de executar o programa de forma normal, com parâmetros ou sem:
Executando o programa em modo debug
Vendo o Disasseble completo de um trecho (no exemplo abaixo, usamos o main
)
Visualiza os endereços de memória que o programa está ocupando
Definindo novos valores paras os registadores
Argumentos
Registradores
Examine
O comando Examine (usamos o atalho x
para executá-lo), serve para examinar determinado endereço de memória de várias maneiras. Este comando espera 2 argumentos, sendo eles o local da memória a ser examinado e o segundo é como exibir essa memória. Assim como o Examine
utiliza uma abreviação (x), o formato de exibição também trabalha com abreviações, sendo elas:
Por exemplo, para exibirmos determinado endereço de memória em Hexadecimal, execute
Breakpoints
Inserindo Breakpoints
Deletando todos os breakpoints
Indo para a próxima instrução com NI
(Next Instruction) e SI
(Step Instruction)
Indo para o próximo breakpoint
Executando Determinada Função
Mesmo sem o programa chegar a determinada função, podemos forçar a sua execução. Com o padrão call((<type_return>(*)()) <method_name>)(<params>)
, podemos fazer isso, como no exemplo abaixo:
Sites
Last updated