Estoy intentando calcular el mecanismo de ajuste y comprobación del valor canario.Pasando a la siguiente "instrucción" usando gdb
#include int main(void) { return printf("Hi!\n"); }
Al desmontar la principal, consigo
(gdb) disas main 0x080483f4 : lea 0x4(%esp),%ecx 0x080483f8 : and $0xfffffff0,%esp 0x080483fb : pushl -0x4(%ecx) 0x080483fe : push %ebp 0x080483ff : mov %esp,%ebp 0x08048401 : push %ecx 0x08048402 : sub $0x14,%esp 0x08048405 : mov %gs:0x14,%eax 0x0804840b : mov %eax,-0x8(%ebp) 0x0804840e : xor %eax,%eax 0x08048410 : movl $0x8048500,(%esp) 0x08048417 : call 0x8048320 0x0804841c : mov -0x8(%ebp),%edx 0x0804841f : xor %gs:0x14,%edx 0x08048426 : je 0x804842d 0x08048428 : call 0x8048330 0x0804842d : add $0x14,%esp 0x08048430 : pop %ecx 0x08048431 : pop %ebp 0x08048432 : lea -0x4(%ecx),%esp 0x08048435 : ret
puse un punto de interrupción en 0x0804840e usando
b *0x0804840e
Después de que el flujo del programa se detiene en este punto de interrupción Me gustaría gdb
para ir a la siguiente instrucción en lugar de la siguiente línea de c código. No creo poder usar next
para esto. Entonces, ¿qué otra opción tengo aparte de establecer un punto de interrupción en cada instrucción?
BGF tiene bastante buena help' help' en línea le conseguirá una lista de temas, entre los que se está ejecutando; 'help running' enumera" stepi - Instrucción del paso uno exactamente ", y' help stepi' da una descripción más detallada. – Cascabel