mfussenegger / nvim-dap

Debug Adapter Protocol client implementation for Neovim
GNU General Public License v3.0
5.67k stars 207 forks source link

Resumed thread is marked as stopped when `resumed` event i received while waiting for `update_thread` coroutine #1365

Closed sidlatau closed 1 week ago

sidlatau commented 1 week ago

Debug adapter definition and debug configuration

No response

Debug adapter version

No response

Steps to Reproduce

After https://github.com/mfussenegger/nvim-dap/issues/1363 got merged another race condition became apparent.

Related issue: https://github.com/dart-lang/sdk/issues/57006

Race condition: continued event is received while self:update_threads is running. The thread is marked as not stopped but after self:update_threads is done, event_stopped is resumed and thread is incorrectly marked as stopped. This causes "Thread 1 is not paused" error to be shown to user.

Relevant code:

function Session:event_stopped(stopped)
  require("dap.async").run(function()
    local co = coroutine.running()

    if self.dirty.threads or (stopped.threadId and self.threads[stopped.threadId] == nil) then
      self:update_threads(coresume(co))
      local err = coroutine.yield()
      if err then
        utils.notify('Error retrieving threads: ' .. utils.fmt_error(err), vim.log.levels.ERROR)
        return
      end
    end

    local should_jump = stopped.reason ~= 'pause' or stopped.allThreadsStopped

    -- Some debug adapters allow to continue/step via custom REPL commands (via evaluate)
    -- That by-passes `clear_running`, resulting in self.stopped_thread_id still being set
    -- Dont auto-continue if`threadId == self.stopped_thread_id`, but stop & jump
    if self.stopped_thread_id and self.stopped_thread_id ~= stopped.threadId and should_jump then
      if defaults(self).auto_continue_if_many_stopped then
        local thread = self.threads[self.stopped_thread_id]
        local thread_name = thread and thread.name or self.stopped_thread_id
        log.debug(
          'Received stopped event, but ' .. thread_name .. ' is already stopped. ' ..
          'Resuming newly stopped thread. ' ..
          'To disable this set the `auto_continue_if_many_stopped` option to false.')
        self:request('continue', { threadId = stopped.threadId }, function() end)
        return
      else
        -- Allow thread to stop, but don't jump to it because stepping
        -- interleaved between threads is confusing
        should_jump = false
      end
    end
    if should_jump then
      self.stopped_thread_id = stopped.threadId
    end

    if stopped.allThreadsStopped then
      progress.report('All threads stopped')
      for _, thread in pairs(self.threads) do
        thread.stopped = true
      end
    elseif stopped.threadId then
      progress.report('Thread stopped: ' .. stopped.threadId)
      self.threads[stopped.threadId].stopped = true
    else
      utils.notify('Stopped event received, but no threadId or allThreadsStopped', vim.log.levels.WARN)
    end
Logs with addtional custom added `--> ` events ``` [ DEBUG ] 2024-11-15T18:43:22Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1455 ] "Spawning debug adapter" { args = { "debug-adapter" }, command = "/Users/ts/fvm/versions/3.24.5/bin/flutter", type = "executable" } [ DEBUG ] 2024-11-15T18:43:22Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1767 ] "request" { arguments = { adapterID = "nvim-dap", clientID = "neovim", clientName = "neovim", columnsStartAt1 = true, linesStartAt1 = true, locale = "en_US.UTF-8", pathFormat = "path", supportsProgressReporting = true, supportsRunInTerminalRequest = true, supportsStartDebuggingRequest = true, supportsVariableType = true }, command = "initialize", seq = 1, type = "request" } [ DEBUG ] 2024-11-15T18:43:23Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { exceptionBreakpointFilters = { { default = false, filter = "All", label = "All Exceptions" }, { default = true, filter = "Unhandled", label = "Uncaught Exceptions" } }, supportsClipboardContext = true, supportsConditionalBreakpoints = true, supportsConfigurationDoneRequest = true, supportsDelayedStackTraceLoading = true, supportsEvaluateForHovers = true, supportsLogPoints = true, supportsRestartFrame = true, supportsRestartRequest = false, supportsTerminateRequest = true, supportsValueFormattingOptions = true }, command = "initialize", request_seq = 1, seq = 1, success = true, type = "response" } [ DEBUG ] 2024-11-15T18:43:23Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1767 ] "request" { arguments = { args = {}, cwd = "/Users/ts/Documents/github/personal/tmp/create-new/test", dartSdkPath = "/Users/ts/fvm/versions/3.24.5/bin/cache/dart-sdk", debugExternalPackageLibraries = false, debugSdkLibraries = false, evaluateToStringInDebugViews = true, flutterSdkPath = "/Users/ts/fvm/versions/3.24.5", name = "Launch flutter", program = "lib/main.dart", request = "launch", type = "dart" }, command = "launch", seq = 2, type = "request" } [ DEBUG ] 2024-11-15T18:43:23Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = vim.empty_dict(), event = "initialized", seq = 2, type = "event" } [ DEBUG ] 2024-11-15T18:43:23Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1767 ] "request" { arguments = { filters = {} }, command = "setExceptionBreakpoints", seq = 3, type = "request" } [ DEBUG ] 2024-11-15T18:43:23Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = vim.empty_dict(), command = "setExceptionBreakpoints", request_seq = 3, seq = 3, success = true, type = "response" } [ DEBUG ] 2024-11-15T18:43:23Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1767 ] "request" { command = "configurationDone", seq = 4, type = "request" } [ DEBUG ] 2024-11-15T18:43:23Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { command = "configurationDone", request_seq = 4, seq = 4, success = true, type = "response" } [ DEBUG ] 2024-11-15T18:43:23Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { message = "Launching…", progressId = "launch_1", title = "Flutter" }, event = "progressStart", seq = 5, type = "event" } [ DEBUG ] 2024-11-15T18:43:23Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { command = "launch", request_seq = 2, seq = 6, success = true, type = "response" } [ DEBUG ] 2024-11-15T18:43:27Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { capabilities = { supportsRestartRequest = true } }, event = "capabilities", seq = 7, type = "event" } [ DEBUG ] 2024-11-15T18:43:27Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { appId = "071e63f8-4597-447f-8b1d-13d20dcb7a20", deviceId = "F98BFF5F-1F19-4CE5-B56C-2E5A40B6FB09", directory = "/Users/ts/Documents/github/personal/tmp/create-new/test", launchMode = "run", mode = "debug", supportsRestart = true }, event = "flutter.appStart", seq = 8, type = "event" } [ WARN ] 2024-11-15T18:43:27Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1084 ] "No event handler for " { body = { appId = "071e63f8-4597-447f-8b1d-13d20dcb7a20", deviceId = "F98BFF5F-1F19-4CE5-B56C-2E5A40B6FB09", directory = "/Users/ts/Documents/github/personal/tmp/create-new/test", launchMode = "run", mode = "debug", supportsRestart = true }, event = "flutter.appStart", seq = 8, type = "event" } [ DEBUG ] 2024-11-15T18:43:27Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { category = "console", output = "Launching lib/main.dart on iPhone 14 in debug mode...\n" }, event = "output", seq = 9, type = "event" } [ DEBUG ] 2024-11-15T18:43:29Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { message = "Running Xcode build...", progressId = "launch_1" }, event = "progressUpdate", seq = 10, type = "event" } [ DEBUG ] 2024-11-15T18:43:44Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { category = "console", output = "Xcode build done. 14.6s\n" }, event = "output", seq = 11, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { message = "Syncing files to device iPhone 14...", progressId = "launch_1" }, event = "progressUpdate", seq = 12, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { progressId = "launch_1" }, event = "progressEnd", seq = 13, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { output = "Connecting to VM Service at ws://127.0.0.1:64933/z46_aWfDgng=/ws\n" }, event = "output", seq = 14, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { output = "Connected to the VM Service.\n" }, event = "output", seq = 15, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { vmServiceUri = "ws://127.0.0.1:64933/z46_aWfDgng=/ws" }, event = "dart.debuggerUris", seq = 16, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { reason = "started", threadId = 1 }, event = "thread", seq = 17, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { reason = "entry", threadId = 1 }, event = "stopped", seq = 18, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:689 ] "--> Session:event_stopped(stopped), self.threads" { reason = "entry", threadId = 1 } { { id = 1, name = "Unknown" } } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:694 ] "--> Session:event_stopped self.dirty.threads" true [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1767 ] "request" { command = "threads", seq = 5, type = "request" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = vim.empty_dict(), event = "flutter.appStarted", seq = 19, type = "event" } [ WARN ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1084 ] "No event handler for " { body = vim.empty_dict(), event = "flutter.appStarted", seq = 19, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { method = "s0.reloadSources", service = "reloadSources" }, event = "dart.serviceRegistered", seq = 20, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { method = "s0.hotRestart", service = "hotRestart" }, event = "dart.serviceRegistered", seq = 21, type = "event" } [ WARN ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1084 ] "No event handler for " { body = { method = "s0.reloadSources", service = "reloadSources" }, event = "dart.serviceRegistered", seq = 20, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { method = "s0.flutterVersion", service = "flutterVersion" }, event = "dart.serviceRegistered", seq = 22, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { method = "s0.compileExpression", service = "compileExpression" }, event = "dart.serviceRegistered", seq = 23, type = "event" } [ WARN ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1084 ] "No event handler for " { body = { method = "s0.hotRestart", service = "hotRestart" }, event = "dart.serviceRegistered", seq = 21, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { method = "s0.flutterMemoryInfo", service = "flutterMemoryInfo" }, event = "dart.serviceRegistered", seq = 24, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { method = "s0.flutterGetSkSL", service = "flutterGetSkSL" }, event = "dart.serviceRegistered", seq = 25, type = "event" } [ WARN ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1084 ] "No event handler for " { body = { method = "s0.flutterVersion", service = "flutterVersion" }, event = "dart.serviceRegistered", seq = 22, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { threadId = 1 }, event = "continued", seq = 26, type = "event" } [ WARN ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1084 ] "No event handler for " { body = { method = "s0.compileExpression", service = "compileExpression" }, event = "dart.serviceRegistered", seq = 23, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { threads = { { id = 1, name = "main" } } }, command = "threads", request_seq = 5, seq = 27, success = true, type = "response" } [ WARN ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1084 ] "No event handler for " { body = { method = "s0.flutterMemoryInfo", service = "flutterMemoryInfo" }, event = "dart.serviceRegistered", seq = 24, type = "event" } [ WARN ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1084 ] "No event handler for " { body = { method = "s0.flutterGetSkSL", service = "flutterGetSkSL" }, event = "dart.serviceRegistered", seq = 25, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1962 ] "--> Session:event_continued(event), self.thread" { threadId = 1 } { { id = 1, name = "Unknown" } } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1979 ] "--> Session:event_continued(event) after, self.thread" { { id = 1, name = "Unknown" } } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:664 ] "--> Session:update_threads before update self.threads.threads" { { id = 1, name = "Unknown" } } { { id = 1, name = "main" } } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:751 ] "--> Session:event_stopped before stacktrace; thread, self.threads" { id = 1, name = "main", stopped = true } { { id = 1, name = "main", stopped = true } } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1767 ] "request" { arguments = { startFrame = 0, threadId = 1 }, command = "stackTrace", seq = 6, type = "request" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { error = { format = "{message}", id = 1, showUser = true, variables = { message = "Thread 1 is not paused", stack = "#0 DartDebugAdapter.stackTraceRequest (package:dds/src/dap/adapters/dart.dart:1847:7)\n#1 BaseDebugAdapter.handle (package:dds/src/dap/base_debug_adapter.dart:141:20)\n#2 BaseDebugAdapter.handleIncomingRequest (package:dds/src/dap/base_debug_adapter.dart:440:7)\n#3 BaseDebugAdapter._handleIncomingMessage (package:dds/src/dap/base_debug_adapter.dart:309:7)\n#4 ByteStreamServerChannel._readMessage (package:dds/src/dap/protocol_stream.dart:82:18)\n#5 ByteStreamServerChannel.listen. (package:dds/src/dap/protocol_stream.dart:53:24)\n#6 _rootRunUnary (dart:async/zone.dart:1407:47)\n#7 _CustomZone.runUnary (dart:async/zone.dart:1308:19)\n#8 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1217:7)\n#9 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:365:11)\n#10 _DelayedData.perform (dart:async/stream_impl.dart:541:14)\n#11 _PendingEvents.handleNext (dart:async/stream_impl.dart:646:11)\n#12 _PendingEvents.schedule. (dart:async/stream_impl.dart:617:7)\n#13 _rootRun (dart:async/zone.dart:1391:47)\n#14 _CustomZone.run (dart:async/zone.dart:1301:19)\n#15 _CustomZone.runGuarded (dart:async/zone.dart:1209:7)\n#16 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:1249:23)\n#17 _rootRun (dart:async/zone.dart:1399:13)\n#18 _CustomZone.run (dart:async/zone.dart:1301:19)\n#19 _CustomZone.runGuarded (dart:async/zone.dart:1209:7)\n#20 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:1249:23)\n#21 _microtaskLoop (dart:async/schedule_microtask.dart:40:21)\n#22 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)\n#23 _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:118:13)\n#24 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:185:5)\n" } } }, command = "stackTrace", message = "Thread 1 is not paused", request_seq = 6, seq = 28, success = false, type = "response" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:753 ] "--> Session:event_stopped after stacktrace; thread, self.threads" { id = 1, name = "main", stopped = true } { { id = 1, name = "main", stopped = true } } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.reassemble", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 29, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.exit", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 30, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.connectedVmServiceUri", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 31, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.activeDevToolsServerAddress", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 32, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.platformOverride", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 33, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.brightnessOverride", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 34, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.timeDilation", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 35, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.evict", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 36, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.profilePlatformChannels", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 37, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.invertOversizedImages", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 38, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.debugPaint", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 39, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.debugPaintBaselinesEnabled", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 40, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.repaintRainbow", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 41, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.debugDumpLayerTree", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 42, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.debugDisableClipLayers", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 43, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.debugDisablePhysicalShapeLayers", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 44, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.debugDisableOpacityLayers", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 45, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.debugDumpRenderTree", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 46, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.debugDumpSemanticsTreeInTraversalOrder", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 47, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.debugDumpSemanticsTreeInInverseHitTestOrder", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 48, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.profileRenderObjectPaints", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 49, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.profileRenderObjectLayouts", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 50, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.debugDumpApp", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 51, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.debugDumpFocusTree", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 52, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.showPerformanceOverlay", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 53, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.didSendFirstFrameEvent", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 54, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.didSendFirstFrameRasterizedEvent", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 55, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.profileWidgetBuilds", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 56, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.profileUserWidgetBuilds", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 57, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.debugAllowBanner", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 58, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.structuredErrors", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 59, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.show", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 60, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.trackRebuildDirtyWidgets", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 61, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.widgetLocationIdMap", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 62, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.trackRepaintWidgets", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 63, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.disposeAllGroups", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 64, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.disposeGroup", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 65, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.isWidgetTreeReady", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 66, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.disposeId", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 67, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.setPubRootDirectories", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 68, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.addPubRootDirectories", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 69, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.removePubRootDirectories", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 70, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.getPubRootDirectories", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 71, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.setSelectionById", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 72, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.getParentChain", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 73, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.getProperties", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 74, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.getChildren", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 75, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.getChildrenSummaryTree", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 76, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.getChildrenDetailsSubtree", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 77, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.getRootWidget", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 78, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.getRootWidgetSummaryTree", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 79, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.getRootWidgetSummaryTreeWithPreviews", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 80, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.getRootWidgetTree", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 81, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.getDetailsSubtree", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 82, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.getSelectedWidget", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 83, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.getSelectedSummaryWidget", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 84, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.isWidgetCreationTracked", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 85, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.screenshot", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 86, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.getLayoutExplorerNode", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 87, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.setFlexFit", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 88, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.setFlexFactor", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 89, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extensionRPC = "ext.flutter.inspector.setFlexProperties", isolateId = "isolates/611809718795467" }, event = "dart.serviceExtensionAdded", seq = 90, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extension = "ext.flutter.activeDevToolsServerAddress", value = "http://127.0.0.1:9100" }, event = "flutter.serviceExtensionStateChanged", seq = 91, type = "event" } [ DEBUG ] 2024-11-15T18:43:46Z+0200 ] ...ments/github/personal/forks/nvim-dap/lua/dap/session.lua:1034 ] 1 { body = { extension = "ext.flutter.connectedVmServiceUri", value = "http://127.0.0.1:64933/z46_aWfDgng=/" }, event = "flutter.serviceExtensionStateChanged", seq = 92, type = "event" } ```

Expected Result

"Thread 1 is not paused" should not be shown to the user. Resumed thread should not be marked as stopped.

Actual Result

"Thread 1 is not paused" is shown to the user.

mfussenegger commented 1 week ago

Can you try with https://github.com/mfussenegger/nvim-dap/pull/1366 ?

sidlatau commented 1 week ago

Can you try with #1366 ?

I tested it, and it works, thanks, @mfussenegger!