Shortcut for GDB
2014/02/12 수
13:49
 
CGDB 단축키
디버깅창(gdb mode) focus

KEY

DESCRIPTION

info threads

현재 tread정보보기

info breakpoints

breakpoint 정보보기

info local

현재 local 변수 보여주기

info args

현재 args 보여주기, 유효영역이 끝나면 optimized out으로 표기된다.

info registers

register값들 보기

print 변수명

현재 유효영역에서 변수명 보기, 유효한것만 보여준다.

pgup, pgdown

gdb window scroll

bt

call stack

b

break

c

continue

s

step into

n

next (step over)

info sharedlibrary

shared library 정보보기

add-symbol-file

symbol 정보 추가 : add-symbol-file out/target/product/generic/symbols/system/lib/libstagefright_foundation.so

 
 
소스창(cgdb mode) focus (ESC)

KEY

DESCRIPTION

o

소스열기(file dialog window)

space

break toggle

t

temp break(걸리면 자동삭제)

F5

run

F6

continue

F7

finish

F8

next (step over)

F10

step

+,-

창크기 조절,25% 단위로 증감

 
 
GDB 명령어                                                

명령어

설명

set logging on

현재 log를 지금부터 gdb.txt로 출력하게 된다. log on

shell shell명령

gdb가 아닌 shell에 있는 명령 실행하기

info threads

현재 task의 thread의 정보를 보여준다.

thread 2

gdb에서 관리하는 thread num으로 thead간 change하기

bt

backtrace, 현재 설정된 thread에 대한 call stack정보를 보여준다.

bt full

지역변수까지 보여준다.

thread apply all bt full

모든 thread에 대한 call stack정보를 보여준다.

b android::SurfaceFlinger::postFramebuffer

namespace가 존재할때, break걸기

b SurfaceFlinger.cpp:519

source 위치를 정확히 알때

info b

break를 num 순서대로 표시한다

disable b 1

num 1 break를 제거한다

enable b 1

 

break InterpAsm-armv5te.S:10143

assem break 걸기

disassem

assem으로 보기

stepi

assem으로 step

nexti

assem으로 next

handle SIGUSR1 ignore

android에서 주기적으로 GC를 유발하는 SIGUSR1올때 멈춤을 방지하기 위해 무시

setprop sys.watchdog.disabled 1

system server watchdog 걸리지 않게, Q사는 소스에서 처리해서 괜찮다.

 

 

adb shell stop

 

adb setprop debug.db.uid xxx

just-in-time debugging으로 process crash되기전에 gdb를 붙여준다.

adb shell start

여기서 xxx는 pid 번호이며, 모든 process를 다걸고 싶을때는 1로 만든다.