(CoroutineDebugger) fails to start in gradle mode

#KT-39634 fixed
This commit is contained in:
Vladimir Ilmov
2020-06-16 20:52:19 +02:00
parent 3d86e92bf5
commit db127bb414
3 changed files with 30 additions and 11 deletions
@@ -33,14 +33,15 @@ class DebuggerConnection(
val project: Project,
val configuration: RunConfigurationBase<*>,
val params: JavaParameters?,
val runnerSettings: DebuggingRunnerData?
val runnerSettings: DebuggingRunnerData?,
modifyArgs: Boolean = true
) : XDebuggerManagerListener {
var disposable: Disposable? = null
var connection: MessageBusConnection? = null
private val log by logger
init {
if (params is JavaParameters) {
if (params is JavaParameters && modifyArgs) {
// gradle related logic in KotlinGradleCoroutineDebugProjectResolver
val kotlinxCoroutinesCore = params.classPath?.pathList?.firstOrNull { it.contains("kotlinx-coroutines-core") }
val kotlinxCoroutinesDebug = params.classPath?.pathList?.firstOrNull { it.contains("kotlinx-coroutines-debug") }
@@ -34,12 +34,16 @@ class CoroutineDebuggerListener(val project: Project) : DebuggerListener {
val isExternalSystemRunConfiguration = configuration is ExternalSystemRunConfiguration
val isGradleConfiguration = gradleConfiguration(configuration.type.id)
val disableCoroutineAgent = KotlinDebuggerSettings.getInstance().debugDisableCoroutineAgent
if (!disableCoroutineAgent && runnerSettings is DebuggingRunnerData && !isExternalSystemRunConfiguration && !isGradleConfiguration)
return DebuggerConnection(project, configuration, params, runnerSettings)
if (!disableCoroutineAgent && runnerSettings is DebuggingRunnerData) {
if (isExternalSystemRunConfiguration && isGradleConfiguration)
// gradle related logic in KotlinGradleCoroutineDebugProjectResolver
return DebuggerConnection(project, configuration, params, runnerSettings, false)
else
return DebuggerConnection(project, configuration, params, runnerSettings, true)
}
return null
}
private fun gradleConfiguration(configurationName: String) =
"GradleRunConfiguration" == configurationName || "KotlinGradleRunConfiguration" == configurationName
}