rsp+
(스택에 위치)
(lldb) 명령어 | 설명 |
run (r) | 중단점이 도달하거나 프로세스가 종료될 때까지 실행을 시작합니다. |
continue (c) | 디버깅 중인 프로세스의 실행을 계속합니다. |
nexti (n / ni) | 다음 명령을 실행합니다. 이 명령은 함수 호출을 건너뜁니다. |
stepi (s / si) | 다음 명령을 실행합니다. nexti 명령과 달리 이 명령은 함수 호출 내부로 진입합니다. |
finish (f) | 현재 함수("프레임")의 나머지 명령을 실행하고 중단합니다. |
control + c | 실행을 일시 중지합니다. 프로세스가 실행되거나 계속되었을 경우, 현재 실행 중인 위치에서 프로세스를 중지시킵니다. |
breakpoint (b) | b main # main 함수 호출 b <binname>`main # 바이너리의 main 함수 b set -n main --shlib <lib_name> # 지정된 바이너리의 main 함수 b -[NSDictionary objectForKey:] b -a 0x0000000100004bd9 br l # 중단점 목록 br e/dis <num> # 중단점 활성화/비활성화 breakpoint delete <num> |
help | help breakpoint # 중단점 명령어 도움말 help memory write # 메모리에 쓰기 도움말 |
reg | reg read reg read $rax reg read $rax --format <format> reg write $rip 0x100035cc0 |
x/s <reg/memory address> | 메모리를 null로 종료된 문자열로 표시합니다. |
x/i <reg/memory address> | 메모리를 어셈블리 명령으로 표시합니다. |
x/b <reg/memory address> | 메모리를 바이트로 표시합니다. |
print object (po) | 매개변수로 참조된 객체를 출력합니다. po $raw
대부분의 Apple의 Objective-C API 또는 메서드는 객체를 반환하므로 "print object" (po) 명령을 통해 표시해야 합니다. 의미 있는 출력이 나오지 않는 경우 |
memory | memory read 0x000.... memory read $x0+0xf2a memory write 0x100600000 -s 4 0x41414141 # 해당 주소에 AAAA 쓰기 memory write -f s $rip+0x11f+7 "AAAA" # 해당 주소에 AAAA 쓰기 |
disassembly | dis # 현재 함수의 어셈블리 명령 표시 dis -n <funcname> # 함수의 어셈블리 명령 표시 dis -n <funcname> -b <basename> # 함수의 어셈블리 명령 표시 |
parray | parray 3 (char **)$x1 # x1 레지스터의 3개 구성 요소 배열 확인 |