2. 디버깅 노하우 ¶
- 새로운 코드를 작성하기 전에 현재 있는 버그들을 잡는다.
- 버그는 오래 되면 될 수록 그거에 관련된 코드에 대한 기억도 희미해지고, 불명확해져서 디버깅하는데 더 많은 시간이 걸리게 된다.
- 버그는 오래 되면 될 수록 그거에 관련된 코드에 대한 기억도 희미해지고, 불명확해져서 디버깅하는데 더 많은 시간이 걸리게 된다.
- 한번에 하나씩의 버그를 수정하고 테스트 해본다.
- 과학실험에서도 하나의 인자를 바꿔가면서 실험을 하지 한꺼번에 여러 인자를 바꾸면서 실험하지는 않는다.
- 과학실험에서도 하나의 인자를 바꿔가면서 실험을 하지 한꺼번에 여러 인자를 바꾸면서 실험하지는 않는다.
- 분할 정복 기법
- 분할정복을 하다가 생길수 있는 부분은 나무만 보게 되고 숲을 보지 못하게 되는 경우가 있다. 주의!
4. 디버그 마음가짐 ¶
Ridiculus Simplity
깊게 생각하기 보다 넓게 생각하라.
버그가 있을 리가 없어!라고 생각지 말라.
어디서부터 시작할 지 생각한다.
데이터를 눈에 보이게 만들라.
누군가에게 설명한다
깊게 생각하기 보다 넓게 생각하라.
버그가 있을 리가 없어!라고 생각지 말라.
어디서부터 시작할 지 생각한다.
데이터를 눈에 보이게 만들라.
누군가에게 설명한다
.
5.1. VC++디버거 쓰기 ¶
- Debug
기능 | 단축키(*->중요도) | 의미 |
Start Debugging, Go | *F5 | 디버깅 모드로 실행, 디버깅 모드 중에 F5를 다음 BreakPoint로 이동함 |
BreakPoint | * F9 | 디버깅 모드에서 멈출곳을 지정 |
Stop Debugging | shift + F5 | 디버깅 모드 중단 |
Step Into | F11 | 디버깅 모드에서 한 라인씩 실행 - 함수를 만나면 함수 내부로 들어가서 계속 실행 |
Step Over | F10 | 디버깅 모드에서 한 라인씩 실행 - 함수를 만나면 내부로 안들어가고 실행만 하고 다음 계속 실행 |
Step Out | shift+F11 | Step Into 로 함수안에 들어갔다가 나오고 싶을때 사용 |
Run to Cursor | Ctrl+F10 | 현재 커서가 있는 곳으로 디버깅 지점이 바뀜. 단 이미 지난 곳으로는 안됨 |
Set Next Statement | - | 다음 디버깅 지점을 지정. Run to Cursor에서는 이미 지난곳은 안되지만 여기서는 됨 |
- View
화면(*->중요도) | 용도 |
*Watch Window | 변수값이나 객체의 상태를 봄. 그 값을 변경시킬수도 있음 |
Call Stack Window | 함수 호출 경로를 보여줌 |
Disassembly | 역어셈블리어 코드를 보여줌 |
5.2. Eclipse디버거 쓰기 ¶
기능 | 단축키(*->중요도) | 의미 |
Debug start | *F11 | 디버깅 모드로 실행 |
BreakPoint | * Ctrl + Shift + b | 디버깅 모드에서 멈출곳을 지정 |
Step Into | F5 | 디버깅 모드에서 한 라인씩 실행 - 함수를 만나면 함수 내부로 들어가서 계속 실행 |
Step Over | F6 | 디버깅 모드에서 한 라인씩 실행 - 함수를 만나면 내부로 안들어가고 실행만 하고 다음 계속 실행 |
Run to Return(Step Out) | F7 | 어떤 함수안에 들어갔다가 바로 그 함수를 나오고 싶을때 사용 |
Resume(go) | F8 | 다음 BreakPoint 지점으로 이동 |
- tip : Ctrl + F11 : 실행
6. 반복되는 디버깅 피하기 - DebugJournal ¶
사실 : 삽질 내용, 그 여정, 실수한 이야기 -> 사고의 과정이 드러나도록!
느낌, 교훈
미래 행동 계획(FAP)
피드백
느낌, 교훈
미래 행동 계획(FAP)
피드백