CoroutineName 과 Coroutine 디버깅

2023. 1. 13. 13:53·Android Development
반응형

코루틴 디버깅을 하는 것은 쉽지 않습니다.

 

일반적으로 코루틴을 디버깅할 때, 어떤 코루틴인지 알기 어렵기 때문에 이름을 붙입니다.

 

CoroutineName 활용

CoroutineScope(CoroutineName("MyCoroutine") + Dispatchers.IO).launch {
    // impl
}
  • CoroutineName 을 추가하면 해당 코루틴에게 이름이 붙습니다.
  • 로그 메시지에서 해당 이름이 출력됩니다.

이를 통해서 디버깅할 때, 동시 다발로 발생하는 코루틴도 이름으로 식별 가능합니다.

 

CoroutineName 이 표시가 되려면 디버깅 옵션을 추가해야 하는데요.

-Dkotlinx.coroutines.debug

인텔리제이 기준으로 

Run > Edit Configuration > VM options 에 위 문구를 추가합니다.

 

다만, 안드로이드 스튜디오는 저런 부분이 없습니다. 그리고 실제로 애플리케이션이 실행되는 시점에 뭔가 처리를 해줘야 합니다.

그래서 메인 애플리케이션에 아래와 같이 처리해주면 좋습니다.

System.setProperty("kotlinx.coroutines.debug", "on" )

이렇게 설정하고 나면, 앱에서 실행한 코루틴 이름을 출력하면 나타납니다.

프로덕트로 배포되는 경우에는 제거하거나, 빌드 flavor 에 따라 다르게 처리해주는 건 덤입니다.

저작자표시 비영리 변경금지 (새창열림)

'Android Development' 카테고리의 다른 글

AAR 의존성 추가하기  (0) 2023.01.13
안드로이드 11 권한 자동 삭제 기능 대응(Permission Auto-reset)  (0) 2021.10.01
Gradle Kotlin DSL issue - Cannot access class 'java.io.OutputStream'. Check your module classpath for missing or conflicting dependencies  (0) 2021.09.06
Unboxing of 'map.get(key.toString())' may produce 'NullPointerException'  (0) 2021.09.04
build.gradle.kts 에서 getByName error 발생  (0) 2021.09.04
'Android Development' 카테고리의 다른 글
  • AAR 의존성 추가하기
  • 안드로이드 11 권한 자동 삭제 기능 대응(Permission Auto-reset)
  • Gradle Kotlin DSL issue - Cannot access class 'java.io.OutputStream'. Check your module classpath for missing or conflicting dependencies
  • Unboxing of 'map.get(key.toString())' may produce 'NullPointerException'
fogthegreat
fogthegreat
아주 오랫동안 이것 저것 개발하면서 배우고 찾아 본 것들을 적거나 모았습니다. 불편한 점이 있다면 알려주세요. (과거에 불펌한 글들을 모두 제거하고 있는 중이에요. 🙏)
  • fogthegreat
    꿈소년의 개발 이야기
    fogthegreat
  • 전체
    오늘
    어제
    • 전체보기 (242)
      • Software Engineering (56)
      • Android Development (78)
      • 일상다반사 (63)
      • 책에 대한 거의 모든 것 (11)
      • 영어공부 (1)
      • ETC (0)
      • 챌린지 (1)
      • Do it 스터디! (32)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 향로
    • 청하가 제안하는 소프트웨어 엔지니어로써 재미있게 사는 …
    • WhoRU? Story...♡
    • Snapshot
    • 두잇! - 이지스퍼블리싱
    • 제이펍의 참 똑똑한 2비트 책 이야기
    • Inpa Dev
  • 공지사항

  • 인기 글

  • 태그

    구글
    hcj
    안드로이드 개발
    google
    java
    build.gradle
    리눅스
    js
    안철수
    git
    코틀린
    개발
    gradle
    Eclipse
    노개북
    ActiveX
    C++
    OOM
    탐지기법
    Android
    linux
    css
    하버드
    kotlin
    Android 4.1
    html
    JavaScript
    안드로이드
    자바
    보안
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
fogthegreat
CoroutineName 과 Coroutine 디버깅
상단으로

티스토리툴바