3. 디버거(Debugger)란?
A debugger or debugging tool is a computer program that is used to test and
debug other programs (the "target" program) (from wikipedia)
대상 프로그램을 테스트하고 디버그하는 용도의 컴퓨터 프로그램
3
4. 디버거(Debugger)란? (안드로이드 개발자 버전)
안드로이드 애플리케이션을 실행한 후
앱이 미리 지정한 중단점에 도달했을 때
앱의 실행을 멈추고
앱의 내부를 확인해서
문제를 파악하는 도구
4
5. 디버거를 활용한 개발 흐름
1. 열코딩
2. 앱 실행했는데 문제 발생!
3. 문제의 원인으로 추정되는 코드 근처에 중단점 설정
4. 디버깅 모드로 앱 실행
5. 중단점에 멈추면 열심히 문제 원인을 파악
6. GOTO 1
5
6. 디버거를 활용한 개발 흐름
1. 열코딩
2. 앱 실행했는데 문제 발생!
3. 문제의 원인으로 추정되는 코드 근처에 중단점 설정
4. 디버깅 모드로 앱 실행
5. 중단점에 멈추면 열심히 문제 원인을 파악 ⇐ 효율적으로 수행해보자
6. GOTO 1
6
11. 중단점 걸기
줄 번호 옆의 애매한 공간을 클릭
● 좌클릭: 설정 / 해제
● 우클릭: 상세 정보 창 표시
● Opt + 좌클릭: 비활성화
11
12. 중단점 도달 후 진행
● Step Into(F7) : 호출한 함수 내부로 파고들기
○ Smart Step Into(Shift + F7) : 파고들 대상이 여러개일 경우 Step Into 할 대상 고르기
● Step Over(F8) : 다음 줄로 진행
● Step Out(Shift+F8) : 현재 함수 빠져나오기
● Run to Cursor(Opt+F9) : 일일이 Step over 귀찮아. 커서에서 멈춰라!
● Resume(Opt+Cmd+F8) : 실행 상태로 복귀
● Stop Process(Cmd+F2) : 디버깅 종료하고 앱은 실행 상태로 복귀
12
13. 중단점 도달 후 진행
각각 어디로 이동할까?
● Step Into
● Step Over
● Step Out
13
14. 각각 어디로 이동할까?
● Step Into
● Step Over
● Step Out
중단점 도달 후 진행
14
16. 실행중인 앱에 디버거 붙이기
앗차, 디버거 모드로 실행하지 않았네!
⇒ Attach Debugger to Android process
16
17. 값 평가(evaluation)
● Evaluate(Opt+F8) : 현재 중단된 상태에서 값을 평가
○ 코틀린 사용 시 기본은 Expression 모드
○ 하나의 Expression 으로 안끝나면 Code Fragment 모드로 전환
● 계속 확인해야 할 값은 Watch에 추가
17
18. 값 조작
Variable > Set Value… 로 조작도 가능!
● Kotlin의 val도 조작 가능
18
19. 조건부 중단점
특정 조건을 만족할 경우에만 중단점에 멈추도록 설정
ex) user.id == 100
⇒ resume 연타는 이제 그만!
19
20. 안멈춰 중단점
중단점인데 중단을 안하다니?
● 임시 로깅 용도로 효과적
● 더 이상 Logger.d( “here!!!”) 적어두고 깜빡하고 commit 하지 말자!
20
21. 객체 마킹
리스트 중 특정 인덱스의 인스턴스의 값을 확인하거나 조작하고 싶다면 객체를 마킹함
● Variable > 해당 객체 > Mark Object
● 마킹한 객체는 Evaluate 창에서 바로 접근 가능 : [마킹한이름]_DebugLabel
21