Xcode도 어느덧 2주일 가량 함께하니 익숙해지기 시작한다...
오히려 요새 Android Studio가 Gemini를 탑재하면서 IDE자체가 무겁고 메모리를 많이 잡아먹게 되어 Hot-reload 또는 Plugin갱신이 잘 안되는 듯 하다...
무튼, Xcode에서 디버깅(debugging)을 하는 방법을 나열하려 한다.
디버깅모드라고 따로 Execute하는 것이 아닌 현재 디버그 모드 돌릴 것인지 아닌지 플래그 형태이다.
Debug - Deactivate Breakpoints.
단축키 : Cmd + Y
중단점 모두 해제 (Disable All Breakpoints): Cmd + Shift + Y
지정한 Breakpoint들에서 걸리게 할 것인지 여부를 설정한다.
Breakpoint를 설정
단축키 : Cmd + \
좌측에 파란 북마크가 보이게 된다. (Activate상태)
만약에 디버깅 모드가 아닌 Deactivate상태이면 다음과 같이 Breakpoint색상이 회색빛으로 변한다.
프로그램을 실행하면 해당 포인트에서 멈추는 것을 볼 수 있다.
우측 하단을 보면 (lldb)로 초록빛이 보인다. (lldb는 디버그를 도와주는 도구이다 : Low-Level-Debugger)
해당 lldb 우측에 값을 입력할 수 있는데,
여기서 현재 알고 싶은 값을 확인할 수 있다.
만약에 'animated'파라메터값이 알고 싶은 경우
앞에 'p'를 입력하고 값이 궁금한 변수를 입력한다.
- po [변수명] : 변수나 객체의 값을 출력 (po는 print object).
- p [변수명] : 변수의 값을 출력 (p는 print).
- expr [표현식] : 코드 내 특정 표현식의 값을 계산하고 결과를 출력.
- v 또는 frame variable : 현재 스택 프레임에서 사용 가능한 모든 변수를 출력.
계속 머무를 수 없다. 다음 단계로 이동하는 방법
- 다음 코드로 이동 (Step Over): F6
- 함수 내부로 들어가기 (Step Into): F7
- 함수 밖으로 나오기 (Step Out): F8
- thread list : 현재 실행 중인 모든 스레드의 정보를 출력.
- thread backtrace [번호] : 특정 스레드의 호출 스택을 출력.
- thread step-in : 함수 내부로 한 단계 들어감 (Step Into).
- thread step-over : 함수 호출을 지나서 한 단계 진행 (Step Over).
- thread step-out : 현재 함수에서 빠져나옴 (Step Out).