VSCode中如何为Flutter/Dart应用的单个窗口设置断点?
解决Flutter Web多窗口调试时断点仅触发单个窗口的方法
有几种可行的方法可以实现仅调试指定窗口的需求:
添加条件断点区分窗口
每个Flutter Web窗口对应独立的Isolate,你可以通过URL参数(比如启动时给不同窗口加?debugId=user1这类参数)或者自定义标识来区分窗口。在设置断点时,给断点添加条件判断:比如在Chrome DevTools的断点条件框中输入window.location.search.includes('debugId=user1'),只有匹配该条件的窗口才会触发这个断点。切换Chrome DevTools的调试目标
打开Chrome DevTools后,点击顶部的「目标」图标(类似多窗口的按钮),在弹出的目标列表里选择你需要调试的那个浏览器窗口对应的Flutter实例。切换后,所有断点只会在选中的目标窗口中触发,其他窗口不受影响。通过编译参数区分调试实例
启动不同窗口时传递不同的编译定义参数:
第一个窗口执行:flutter run -d chrome --dart-define=DEBUG_TARGET=user1第二个窗口执行:
flutter run -d chrome --dart-define=DEBUG_TARGET=user2在代码中通过
const String.fromEnvironment('DEBUG_TARGET')获取该参数值,然后给断点添加条件DEBUG_TARGET == 'user1',这样只有对应参数的窗口会触发断点。
内容的提问来源于stack exchange,提问作者Sunil Gupta
相关产品推荐
相关产品推荐

