Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 26 additions & 2 deletions src/io/flutter/run/FlutterPositionMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -140,7 +141,15 @@ public void onLibrariesDownloaded(@NotNull final Iterable<LibraryRef> 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()) {
Comment thread
pq marked this conversation as resolved.
LOG.info("Calculated remoteSourceRoot: " + remoteSourceRoot + " from " + remoteUri);
}
return;
}
}
if (FlutterSettings.getInstance().isFilePathLoggingEnabled()) {
LOG.info("Could not calculate remoteSourceRoot");
}
}

Expand Down Expand Up @@ -189,6 +198,9 @@ private String findRemoteSourceRoot(String remotePath) {
public Collection<String> getBreakpointUris(@NotNull final VirtualFile file) {
final Set<String> 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)) {
Expand All @@ -211,6 +223,9 @@ public Collection<String> 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();
Expand All @@ -228,6 +243,9 @@ public Collection<String> getBreakpointUris(@NotNull final VirtualFile file) {
}
}

if (FlutterSettings.getInstance().isFilePathLoggingEnabled()) {
LOG.info("getBreakpointUris for " + file.getPath() + ": " + results);
}
return results;
}

Expand Down Expand Up @@ -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;
}

/**
Expand Down
9 changes: 9 additions & 0 deletions src/io/flutter/vmService/DartVmServiceBreakpointHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,17 @@
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.*;

import static com.intellij.icons.AllIcons.Debugger.Db_invalid_breakpoint;

public class DartVmServiceBreakpointHandler extends XBreakpointHandler<XLineBreakpoint<XBreakpointProperties>> {
private static final Logger LOG = PluginLogger.createLogger(DartVmServiceBreakpointHandler.class);

private final DartVmServiceDebugProcess myDebugProcess;
private final Set<XLineBreakpoint<XBreakpointProperties>> myXBreakpoints = new HashSet<>();
Expand Down Expand Up @@ -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());
}
}
}

Expand Down
Loading