gdb
gdb -q -s <symbol-file> `pidof <process-name>`
gdb -q <binary>
gdb -q <binary> <core-file>
gdb -q <binary> <process-id>
gdb -p <process-id>
gdb [-help] [-nh] [-nx] [-q] [-batch] [-cd=dir] [-f] [-b bps] [-tty=dev] [-s symfile] [-e prog] [-se prog] [-c core] [-p procID] [-x cmds] [-d dir] [prog|prog procID|prog core]
# gdb를 intel CPU 문법으로 설정, AT&T 방식으로 분석하려면 intel 대신 at로 변경
set disassembly-flavor intel
# binary file의 메모리 크기를 max size 로 변경
set max-value-size unlimited
# Thread 메시지 출력하지 않도록 설정 (start / end)
set print thread-events off
# sigpipe signal 발생 시, 멈추지 않고 진행
# print 도 싫으면 nostop noprint 로 변경, 다른 signal도 동일하게 처리 가능
handle SIGPIPE nostop pass pass
# full string 출력
set print elements 0
sudo apt-get install gdbserver
gdbserver localhost:<listening port> <binary>
(gdb) target remote <ip>:<listening port>
OR
ssh ternnuling을 이용한 port-forward
-> target에 ssh로 직접 연결 불가, 중간에 다른 장비를 거쳐가야하는 경우
$ ssh -J <중간장비>@<중간장비ip> -L <port>:localhost:<port> <target_name>@<target ip>
(gdb) target extended_remote :<port>
$ gdb -q <execute file> -tui