dbx 사용법
Written on 2022-09-04
커널 디버깅을 위한 환경을 제공한다.
- C, C++, Pascal ,FORTRAN 디버깅 제공
- Object 및 Core 파일에 대한 디버깅 제공
- compile 시 -g Flag로 compile 되어 있어야 dbx로 디버깅이 가능하다.
사용법
run 중에 process 에 Debug 하기 위하여 진입
# dbx - <PID> 또는 dbx attach <PID>
$ dbx - 11325
Break Point 설정
# (dbx) stop at <filename>:<line> 파일의 라인을 Break Point로 설정
$ (dbx) stop at iter.c:6
# dbx) stop in <function Name> function 을 Break Point 로 설정
$ (dbx) stop in GetNum #C 함수의 경우
$ (dbx) stop in Equip::GetNum #CPP 함수의 경우
# $ (dbx) stop at <filename>:<line> <condition> 특정 조건에서으로 Break Point 설정
$ (dbx) stop at iter.c:6 -if i == 5
$ (dbx) stop at iter.c:6 -if strcmp(test,"test") == 0
# 모든 break Point 를 보여줌.
[gymbombom@localhost]$ status
# break point 모두 삭제
[gymbombom@localhost]$ delete all
# Break Point 하나만 삭제
# delete <ID>
[gymbombom@localhost]$ delete 2
break Point 에서 기다리기
# (dbx) continue
$ (dbx) continue
# 또는
$ (dbx) c
라인이동
# (dbx) n # 다음 1라인 이동
$ (dbx) n
# (dbx) n <count> count 만큼 라인이동
$ (dbx) n 10 # 10라인 이동
현재실행위치 확인 (stack Trace 확인)
# (dbx) where
$ (dbx) where
변수에 할당된 값 확인
# (dbx) print <var> 또는 p <var>
$ (dbx) p var
# (dbx)info locals #local 변수에 할당 모든 값 확인
$ (dbx) info locals
# (dbx)info variables #전역변수에 할당 모든 값 확인
$ (dbx) info variables
# display <variables> #변수 값 계속 출력
$ (dbx) display var
# watch <variables> # 변수 값이 바뀌는 시점에서 Break point
$ (dbx) watch var
$ (dbx) continue
# (dbx)whatis <variables> #변수타입 출력
$ (dbx) whatis var
변수에 값 할당
# (dbx) assign var = <value>
$ (dbx) assign var = 'A'
$ (dbx) assign var = var1
현재 라인의 함수 안쪽으로 진입
# (dbx) s
$ (dbx) s
현재 실행지점의 source code 보기
# $ (dbx) list 또는 (dbx) l
$ (dbx) l
반복문 빠져나오기
# $ (dbx)until
$ (dbx) until
현재 실행된 함수빠져나오기
# $ (dbx)return #현재 진입한 함수에서 바로 빠져나옴.(함수 실행하지 않음)
$ (dbx) return
# (dbx) finish #함수가 끝나는 지점으로 이동(현재 함수 실행함.)
$ (dbx) finish
dbx 종료
# (dbx) quit
$ quit