5
모듈을 gdb에로드 한 직후에 중지하려고합니다. 바이너리가 모든 심볼 정보에서 완전히 제거되었다고 가정 해 봅시다. 따라서 메인이 없습니다.가능한 가장 빠른 중단 점을 설정하는 방법
은 이상적으로는 진입 점에 중단 점을 설정 싶지만, 그 생각으로 인해 재배치에 고장 : 그런 종류의-의 작품 (내가 새 주소에서 새 중단 점을 설정할 수
(gdb) info target
Symbols from "./application".
Local exec file:
`./application', file type elf64-x86-64.
Entry point: 0xc154
...
(gdb) break *0xc154
Breakpoint 1 at 0xc154
(gdb) r
Starting program: ./application
Warning:
Cannot insert breakpoint 1.
Error accessing memory address 0xc154: Input/output error.
(gdb) info target
Symbols from "./application".
Unix child process:
Using the running image of child process 22835.
While running this, GDB does not access memory from...
Local exec file:
`./application', file type elf64-x86-64.
Entry point: 0x555555560154
에도 불구하고 gdb 스크립트/배치 모드를 통해 쉽게 실행될 수 없습니다. 중간에 실패한 명령어가 있기 때문입니다.
할 방법이 있습니까? 이상적으로는 "실행"보다는 "단일 명령 실행"과 같은 것이 유용 할 것입니다.
내가 필요한 것 – viraptor
이것은 위치 독립적 실행 파일에서 작동하지 않습니다. –
@ZachRiggle 위의 대답은 * PIE 바이너리 용으로 수집 된 GDB 명령의 추적을 포함하고 있으며 분명히 * 작동합니다. 그것이 당신을 위해 작동하지 않았다면, 아마도 당신은 오래된/버그가있는 GDB를 가지고 있거나, GLIBC를 사용하지 않았을 것입니다. 또는 ... –