카테고리 없음

xcode) debug

나태한개발 2024. 6. 21. 14:39

xcode에는 다양한 디버그 방법이 있다.

 

OSLog

주요 특징과 장점

  1. 성능 최적화: OSLog은 시스템 리소스를 효율적으로 활용하여 로그를 기록합니다. 이로 인해 앱의 성능에 미치는 영향을 최소화하면서도 중요한 디버깅 정보를 수집할 수 있다.
  2. 다양한 로깅 레벨: OSLog은 다섯 가지 로깅 레벨을 지원한다.
    • 기본(Default): 일반적인 로그 메시지
    • 정보(Info): 정보성 메시지
    • 디버그(Debug): 디버깅 관련 메시지
    • 오류(Error): 오류 메시지
    • 심각한 오류(Fault): 심각한 오류 메시지
    각 로깅 레벨은 앱의 상황에 맞게 선택하여 로그를 기록할 수 있다.
  3. 시스템 통합: OSLog은 시스템의 Console과 Instruments 앱과 원활하게 통합됩니다. 이는 개발자가 디바이스에서 발생하는 로그를 쉽게 모니터링하고 분석할 수 있도록 도와준다.
  4. 보안성: OSLog은 암호화된 채널을 통해 로그를 전송하므로, 중요한 데이터가 포함된 로그도 안전하게 처리할 수 있다.
  5. API의 간편성: OSLog의 API는 사용하기 쉽고 간결하여, NSLog보다 더 많은 기능을 제공합니다. 현대적인 개발 환경에 적합하게 설계되어 있다.
import os.log

let logger = OSLog(subsystem: "com.example.myapp", category: "network")

// 로그 기록 예시
os_log("서버에서 데이터를 가져오는 중...", log: logger, type: .info)
os_log("데이터 가져오기 오류: %@", log: logger, type: .error, "타임아웃 오류")

lldb

주요 특징과 장점

  1. 디버깅 기능: lldb는 코드 실행 중에 변수 값을 확인하고 수정할 수 있는 기능을 제공합니다. 이는 프로그램이 예기치 않은 방식으로 동작할 때 원인을 분석하는 데 유용하다.
  2. 브레이크포인트 설정: 개발자는 특정 라인이나 조건에서 코드 실행을 일시 정지시키는 브레이크포인트를 설정할 수 있습니다. 이를 통해 프로그램의 흐름을 세밀하게 분석하고 디버깅할 수 있다.
  3. 스탭 인/아웃: lldb는 코드의 단계적 실행을 지원하여, 한 줄씩 코드를 실행하면서 변수 값의 변화를 실시간으로 확인할 수 있다.
  4. 변수 및 메모리 검사: 개발자는 변수의 현재 상태를 검사하거나 메모리 주소를 직접 조작할 수 있습니다. 이는 메모리 누수와 같은 복잡한 문제를 해결하는 데 도움이 된다.
  5. 스크립팅 지원: lldb는 Python 스크립트를 통해 추가적인 기능을 확장할 수 있습니다. 이는 사용자 정의 디버깅 도구를 만들거나 자동화된 디버깅 작업을 수행하는 데 유용하다.
$ lldb MyApp
(lldb) breakpoint set --file ViewController.swift --line 42
(lldb) run
(lldb) po myObject.property
(lldb) thread list
(lldb) memory read --size 4 --format x --count 10 0x7fff5fbff820