DDD 사용법
DDD 사용법
A. 정의
Display Data Debugger로 다른 디버거보다 사용하는데 편리한 인터페이스를 제공하고, 디버깅에 필요한 환경을 손쉽게 설정할 수 있다. 기본적으로 gdb를 기반으로 하여 인터페이스만을 제공한다.
B. 설치
Ubuntu : $ sudo apt-get install ddd
C. 실행
$ ddd
$ ddd <program명>
$ ddd <program명> core
“core”라는 파일은 프로그램의 실행 중에 문제가 있을 때마다 생성되는 파일로 프로그램에 대한 많은 정보를 담고 있다. 만약 시스템이 코어덤프를 만들지 않는다면 코어에 관련된 환경 변수를 확인하면 된다.
$ ddd <program명> <process_id>
process_id는 프로그램이 실행되고 있는 중간에도 디버깅을 할 수 있게 해준다.
D. DDD창 설명
- 소스창 : 브레이크 포인트 설정, 자료구조 선택 등에 사용
- 명령창 : ddd 명령어 집합을 나타내며, 사용자는 이를 통해 명령을 내림
- gdb 콘솔 : gdb에게 직접 명령을 내리거나 ddd에서 print 명령에 대한 결과 출력시 사용
E. 명령어
- Interrupt : 프로그램 강제 종료
- Step : 프로그램을 한 행씩 수행, 함수 호출을 만나게 되면 함수 내부로 들어감
- Next : 프로그램을 한 행씩 수행, 함수 호출을 만나면 함수 내부로 들어가지 않음
- Stepi : 어셈블리 레벨에서 명령어 하나씩 수행, Step과 같이 함수 호출을 만나면 함수 내부로 들어감
- Nexti : 어셈블리 레벨에서 명령어 하나씩 수행, Next와 같이 함수 호출을 만나면 함수 내부로 들어가지 않음
- Until : 반복문을 벗어남
- Finish : 함수를 벗어남
- Cont : 다음 브레이크 포인트를 만날 때까지 계속 수행
- Kill : 프로그램 수행 종료
- Up : 상위 스택 프레임으로 이동
- Down : 하위 스택 프레임으로 이동
- Undo : 이전 상황으로 자료구조 값들을 되돌림
- Redo : Undo 수행 이전 상황으로 되돌림
- Edit : 소스의 내용이 수정되었다면 수정된 소스를 소스창에 보이기 위해 사용
- Make : 프로그램을 새로 컴파일
F. Break Point
- Break Point 생성을 원하는 지점의 행이 시작되는 부분에 마우스 오른쪽 버튼 클릭
- Set Break Point 선택
G. Break Point 메뉴
- Set Temporary Breakpoint : 일회성 브레이크 포인트 생성, X가 붙은 STOP 마크로 표현
- Countinue Until Here : 반복문 수행 중 각 반복 후 멈출 위치를 지정
- Set Execution Position : 프로그램 실행 경로를 지정한 위치로 점프
H. Break Point 조건 설정
- Break Point에서 마우스 오른쪽 버튼 클릭
- Properties 선택
- Condition 속성 설정 후 조건 지정
I. Break Point 설정 메뉴
- Disable Breakpoint : 브레이크 포인트를 일시적으로 끔
- Delete Breakpoint : 설정한 브레이크 포인트 제거