diff --git a/java/debugger/impl/src/com/intellij/debugger/memory/agent/MemoryAgentUtil.java b/java/debugger/impl/src/com/intellij/debugger/memory/agent/MemoryAgentUtil.java index 2c39a1f40480..a2f3274ab33e 100644 --- a/java/debugger/impl/src/com/intellij/debugger/memory/agent/MemoryAgentUtil.java +++ b/java/debugger/impl/src/com/intellij/debugger/memory/agent/MemoryAgentUtil.java @@ -69,10 +69,11 @@ public class MemoryAgentUtil { return; } - //if(isOsSupported()) { - // LOG.info(SystemInfo.); - // - //} + if (isPlatformSupported()) { + LOG.warn("Could not use memory agent on current OS."); + DebuggerSettings.getInstance().ENABLE_MEMORY_AGENT = false; + return; + } if (isIbmJdk(parameters)) { LOG.info("Do not attach memory agent for IBM jdk"); @@ -165,6 +166,10 @@ public class MemoryAgentUtil { }); } + public static boolean isPlatformSupported() { + return SystemInfo.isWindows || SystemInfo.isMac || SystemInfo.isLinux; + } + private static boolean isIbmJdk(@NotNull JavaParameters parameters) { Sdk jdk = parameters.getJdk(); String vendor = jdk == null ? null : JdkUtil.getJdkMainAttribute(jdk, Attributes.Name.IMPLEMENTATION_VENDOR); @@ -187,6 +192,7 @@ public class MemoryAgentUtil { } private static AgentExtractor.AgentLibraryType detectAgentKind(String jdkPath) { + LOG.assertTrue(isPlatformSupported()); if (SystemInfo.isLinux) return AgentExtractor.AgentLibraryType.LINUX; if (SystemInfo.isMac) return AgentExtractor.AgentLibraryType.MACOS; JdkVersionDetector.JdkVersionInfo versionInfo = JdkVersionDetector.getInstance().detectJdkVersionInfo(jdkPath); diff --git a/java/debugger/impl/src/com/intellij/debugger/settings/DebuggerLaunchingConfigurable.java b/java/debugger/impl/src/com/intellij/debugger/settings/DebuggerLaunchingConfigurable.java index 7fa3ac37264f..5ed1bfe57dce 100644 --- a/java/debugger/impl/src/com/intellij/debugger/settings/DebuggerLaunchingConfigurable.java +++ b/java/debugger/impl/src/com/intellij/debugger/settings/DebuggerLaunchingConfigurable.java @@ -2,6 +2,7 @@ package com.intellij.debugger.settings; import com.intellij.debugger.DebuggerBundle; +import com.intellij.debugger.memory.agent.MemoryAgentUtil; import com.intellij.openapi.options.ConfigurableUi; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.registry.Registry; @@ -106,7 +107,9 @@ class DebuggerLaunchingConfigurable implements ConfigurableUi panel.add(myCbDisableJIT); panel.add(myCbShowAlternativeSource); panel.add(myCbKillImmediately); - panel.add(myCbEnableMemoryAgent); + if (MemoryAgentUtil.isPlatformSupported()) { + panel.add(myCbEnableMemoryAgent); + } if (Registry.is("execution.java.always.debug")) { panel.add(myCbAlwaysDebug); }