(lldb) 명령어 | 설명 |
run (r) | 중단점에 도달하거나 프로세스가 종료될 때까지 계속 실행을 시작합니다. |
process launch --stop-at-entry | 진입점에서 중단하며 실행을 시작합니다. |
continue (c) | 디버깅 중인 프로세스의 실행을 계속합니다. |
nexti (n / ni) | 다음 명령어를 실행합니다. 이 명령어는 함수 호출을 건너뜁니다. |
stepi (s / si) | 다음 명령어를 실행합니다. nexti 명령어와 달리 이 명령어는 함수 호출로 들어갑니다. |
finish (f) | 현재 함수(“프레임”)의 나머지 명령어를 실행하고 반환 후 중단합니다. |
control + c | 실행을 일시 중지합니다. 프로세스가 실행(run)되었거나 계속(continue)되었으면, 현재 실행 중인 위치에서 프로세스가 중단됩니다. |
breakpoint (b) |
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) 명령어를 통해 표시해야 합니다. 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개 구성 요소 배열 확인 |
image dump sections | 현재 프로세스 메모리의 맵을 출력합니다. |
image dump symtab <library> | image dump symtab CoreNLP # CoreNLP의 모든 기호 주소 가져오기 |
(lldb) 명령어 | 설명 |
run (r) | 중단점에 도달하거나 프로세스가 종료될 때까지 계속 실행을 시작합니다. |
process launch --stop-at-entry | 진입점에서 중단하며 실행을 시작합니다. |
continue (c) | 디버깅 중인 프로세스의 실행을 계속합니다. |
nexti (n / ni) | 다음 명령어를 실행합니다. 이 명령어는 함수 호출을 건너뜁니다. |
stepi (s / si) | 다음 명령어를 실행합니다. nexti 명령어와 달리 이 명령어는 함수 호출로 들어갑니다. |
finish (f) | 현재 함수(“프레임”)의 나머지 명령어를 실행하고 반환 후 중단합니다. |
control + c | 실행을 일시 중지합니다. 프로세스가 실행(run)되었거나 계속(continue)되었다면, 현재 실행 중인 위치에서 프로세스가 중단됩니다. |
breakpoint (b) |
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) 명령어를 통해 표시해야 합니다. 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개 구성 요소 배열 확인 |
image dump sections | 현재 프로세스 메모리의 맵을 출력합니다. |
image dump symtab <library> | image dump symtab CoreNLP # CoreNLP의 모든 기호 주소 가져오기 |