diff --git a/src/io/flutter/run/FlutterPositionMapper.java b/src/io/flutter/run/FlutterPositionMapper.java index 6f3fc196f..5a8a0c1ce 100644 --- a/src/io/flutter/run/FlutterPositionMapper.java +++ b/src/io/flutter/run/FlutterPositionMapper.java @@ -22,6 +22,7 @@ import com.jetbrains.lang.dart.util.DartUrlResolver; import io.flutter.dart.DartPlugin; import io.flutter.logging.PluginLogger; +import io.flutter.settings.FlutterSettings; import io.flutter.utils.OpenApiUtils; import io.flutter.vmService.DartVmServiceDebugProcess; import org.dartlang.vm.service.element.LibraryRef; @@ -140,7 +141,15 @@ public void onLibrariesDownloaded(@NotNull final Iterable libraries) if (remoteUri.startsWith(DartUrlResolver.DART_PREFIX)) continue; if (remoteUri.startsWith(DartUrlResolver.PACKAGE_PREFIX)) continue; remoteSourceRoot = findRemoteSourceRoot(remoteUri); - if (remoteSourceRoot != null) return; + if (remoteSourceRoot != null) { + if (FlutterSettings.getInstance().isFilePathLoggingEnabled()) { + LOG.info("Calculated remoteSourceRoot: " + remoteSourceRoot + " from " + remoteUri); + } + return; + } + } + if (FlutterSettings.getInstance().isFilePathLoggingEnabled()) { + LOG.info("Could not calculate remoteSourceRoot"); } } @@ -189,6 +198,9 @@ private String findRemoteSourceRoot(String remotePath) { public Collection getBreakpointUris(@NotNull final VirtualFile file) { final Set results = new HashSet<>(); final String uriByIde = resolver.getDartUrlForFile(file); + if (FlutterSettings.getInstance().isFilePathLoggingEnabled()) { + LOG.info("getBreakpointUris: uriByIde=" + uriByIde + " for file=" + file.getPath()); + } // If dart:, short circuit the results. if (uriByIde.startsWith(DartUrlResolver.DART_PREFIX)) { @@ -211,6 +223,9 @@ public Collection getBreakpointUris(@NotNull final VirtualFile file) { if (uriByServer != null) { results.add(uriByServer); } + if (FlutterSettings.getInstance().isFilePathLoggingEnabled()) { + LOG.info("getBreakpointUris: uriByServer=" + uriByServer); + } } final String path = file.getPath(); @@ -228,6 +243,9 @@ public Collection getBreakpointUris(@NotNull final VirtualFile file) { } } + if (FlutterSettings.getInstance().isFilePathLoggingEnabled()) { + LOG.info("getBreakpointUris for " + file.getPath() + ": " + results); + } return results; } @@ -285,7 +303,13 @@ String getRemoteSourceRoot() { @Nullable protected VirtualFile findLocalFile(@NotNull String uri) { - return findLocalFile(uri, null); + final VirtualFile file = findLocalFile(uri, null); + if (file == null) { + if (FlutterSettings.getInstance().isFilePathLoggingEnabled()) { + LOG.info("findLocalFile: could not find local file for " + uri); + } + } + return file; } /** diff --git a/src/io/flutter/vmService/DartVmServiceBreakpointHandler.java b/src/io/flutter/vmService/DartVmServiceBreakpointHandler.java index 286ec7d7e..4621b8fef 100644 --- a/src/io/flutter/vmService/DartVmServiceBreakpointHandler.java +++ b/src/io/flutter/vmService/DartVmServiceBreakpointHandler.java @@ -18,6 +18,9 @@ import com.intellij.xdebugger.breakpoints.XLineBreakpoint; import com.jetbrains.lang.dart.ide.runner.DartLineBreakpointType; import org.dartlang.vm.service.element.Breakpoint; +import com.intellij.openapi.diagnostic.Logger; +import io.flutter.logging.PluginLogger; +import io.flutter.settings.FlutterSettings; import org.jetbrains.annotations.NotNull; import java.util.*; @@ -25,6 +28,7 @@ import static com.intellij.icons.AllIcons.Debugger.Db_invalid_breakpoint; public class DartVmServiceBreakpointHandler extends XBreakpointHandler> { + private static final Logger LOG = PluginLogger.createLogger(DartVmServiceBreakpointHandler.class); private final DartVmServiceDebugProcess myDebugProcess; private final Set> myXBreakpoints = new HashSet<>(); @@ -102,6 +106,11 @@ public void breakpointResolved(@NotNull final Breakpoint vmBreakpoint) { // This can be null when the breakpoint has been set by another debugger client. if (xBreakpoint != null) { myDebugProcess.getSession().updateBreakpointPresentation(xBreakpoint, null, null); + } else { + if (FlutterSettings.getInstance().isFilePathLoggingEnabled()) { + LOG.info("breakpointResolved: could not find XLineBreakpoint for vmBreakpointId=" + vmBreakpoint.getId() + " " + + vmBreakpoint.getLocation()); + } } }