programing

gdb를 사용하여 다음 "지시"로 이동

bestprogram 2023. 9. 24. 13:02

gdb를 사용하여 다음 "지시"로 이동

카나리아 값 설정 및 확인 메커니즘을 파악하려고 합니다.

# #메인(void){printf("Hi!\n")를 반환합니다.}

메인을 분해할 때, 저는

(gdb) 파렴치한0x080483f4 : lea 0x4(%esp), %ecx0x080483f8 : 및 $0xfffffff0, %esp0x080483fb : 푸슬 -0x4 (%ecx)0x080483fe : push %ebp0x080483off : 이동 %esp, %esp0x08048401 : push %ecx0x08048402 : $0x14 이하, %esp0x08048405 : 이동 %gs : 0x14, %eax0x0804840b : %eax 이동, -0x8(%ebp)0x0804840e : x 또는 %eax, %eax0x08048410 : $0x8048500, (%esp)0x08048417 : 전화 0x80483200x0804841c : mov -0x8(%ebp), %edx0x0804841f : x 또는 %gs : 0x14, %edx0x08048426 : je0x804842d0x08048428 : 전화 0x80483300x0804842d : $0x14,%esp 추가0x08048430 : 팝 %ecx0x08048431 : 팝 %ebp0x08048432 : lea -0x4(%ecx), %esp0x08048435 : ret

사용하여 중단점을 0x0804840e로 설정했습니다.

b *0x0804840e

이 중단점에서 프로그램 흐름이 멈춘 후에 저는 원합니다.gdbC 코드의 다음대신 다음 명령으로 이동합니다.저는 사용할 수 없을 것 같습니다.next이 일로그러면 모든 지시사항에 중단점을 설정하는 것 외에 제가 할 수 있는 다른 선택사항은 무엇입니까?

사용하고 싶으십니다.stepi,아카si. 그것은 하나의 기계 명령에 따라 움직입니다.
(또는ni넘어뜨리다call지시 사항)

GDB 매뉴얼의 계속 및 스텝에 대한 항목을 확인합니다.
아니면 GDB 안에서,help/help running당신에게 그것을 보여줄 것입니다.si존재하며,help stepi좀 더 자세히 보여드리겠습니다.

언급URL : https://stackoverflow.com/questions/7707799/jumping-to-the-next-instruction-using-gdb