Hi, is there any way how to debug compile issues? ...
# compiler
v
Hi, is there any way how to debug compile issues? I am trying to run
./gradlew :app:compileDebugUnitTestKotlin --debug
and it always stuck with following message
Copy code
2021-08-27T16:31:11.764+0100 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2021-08-27T16:31:11.764+0100 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2021-08-27T16:31:11.764+0100 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2021-08-27T16:31:11.764+0100 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2021-08-27T16:31:11.764+0100 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2021-08-27T16:31:11.764+0100 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
I already identified test file which causing this issue but I don’t know what could be wrong and it is stuck forever. AGP 4.2.0 Kotlin 1.5.0 Gradle wrapper 6.8.3 Java 11 macOS 11.5.2, Ubuntu 16.04
Copy code
org.gradle.jvmargs=-Xmx4608M -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.caching=true
android.enableD8=true
android.useAndroidX=true
android.enableJetifier=true
kapt.use.worker.api=true
kapt.incremental.apt=true
kapt.include.compile.classpath=false
android.databinding.incremental=true
android.forceJacocoOutOfProcess=true
d
You can debug compilation process by running any gradle task with following arguments:
Copy code
./gradlew -Dorg.gradle.debug=true -Dkotlin.compiler.execution.strategy="in-process" <task-to-exectute>
After that you can attach remote debugger to port
5005
If you want to debug compilation inside kotlin daemon, then you need to kill all daemons and run new one with
Copy code
./gradlew  -Dkotlin.daemon.jvm.options="-agentlib:jdwp=transport=dt_socket\\,server=y\\,suspend=n\\,address=5005" <task-to-execute>
All further invocations should be used without
-Dkotlin.daemon.jvm.options
(because daemon with opened port already started)