일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 안드로이드 개발
- gradle
- ActiveX
- linux
- kotlin
- 안철수
- Android
- java
- 구글
- 리눅스
- 코틀린
- 악성코드
- 자바
- Android 4.1
- build.gradle
- OOM
- 노개북
- git
- 안드로이드
- 하버드
- mime
- 보안
- 개발
- KTS
- c
- 탐지기법
- C++
- ActiveMovieControl
- Eclipse
Archives
- Today
- Total
꿈소년의 개발 이야기
CoroutineName 과 Coroutine 디버깅 본문
반응형
코루틴 디버깅을 하는 것은 쉽지 않습니다.
일반적으로 코루틴을 디버깅할 때, 어떤 코루틴인지 알기 어렵기 때문에 이름을 붙입니다.
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 |