|
1 | 1 | local M = {} |
| 2 | + |
2 | 3 | local utils = require("dap-vscode-js.utils") |
3 | 4 | local dap_breakpoints = require("dap.breakpoints") |
4 | 5 | local dap = require("dap") |
5 | 6 | local dap_utils = require("dap.utils") |
6 | 7 | local dap_bp_ns = "dap_breakpoints" |
| 8 | +local logger = require("dap-vscode-js.log") |
7 | 9 |
|
8 | 10 | local sessions = {} |
9 | 11 |
|
10 | 12 | local breakpoints = {} |
11 | 13 |
|
12 | 14 | local root_ports = {} |
13 | 15 |
|
| 16 | +local function session_log(session, msg, level, reflect_depth) |
| 17 | + reflect_depth = reflect_depth or 3 |
| 18 | + |
| 19 | + local port = (session.adapter and tostring(session.adapter.port)) or "???" |
| 20 | + |
| 21 | + local is_main = dap.session() == session |
| 22 | + |
| 23 | + logger.log(string.format("(%s%s) %s", port, (is_main and "*") or "", msg), level, reflect_depth) |
| 24 | +end |
| 25 | + |
| 26 | +local function session_debug(session, msg) |
| 27 | + session_log(session, msg, vim.log.levels.DEBUG, 4) |
| 28 | +end |
| 29 | + |
| 30 | +local function session_trace(session, msg) |
| 31 | + session_log(session, msg, vim.log.levels.TRACE, 4) |
| 32 | +end |
| 33 | + |
14 | 34 | function M.register_port(port) |
15 | 35 | root_ports[port] = true |
| 36 | + logger.debug("Registered root port " .. port) |
16 | 37 | end |
17 | 38 |
|
18 | 39 | function M.unregister_port(port) |
19 | 40 | root_ports[port] = false |
| 41 | + logger.debug("Unregistered root port " .. port) |
20 | 42 | end |
21 | 43 |
|
22 | 44 | function M.register_session(session, parent, proc) |
| 45 | + session_debug(session, "Registering session") |
| 46 | + |
23 | 47 | dap.set_session(session) |
| 48 | + session_debug(session, "Set as main dap session") |
24 | 49 |
|
25 | 50 | sessions[session] = { |
26 | 51 | parent = parent, |
@@ -82,6 +107,10 @@ function M.setup_hooks(plugin_id, config) |
82 | 107 | end |
83 | 108 |
|
84 | 109 | if not root_ports[session.adapter.port] then |
| 110 | + session_debug(session, "Received setBreakpoints response on root port") |
| 111 | + session_trace(session, "setBreakpoints body: " .. vim.inspect(body)) |
| 112 | + session_trace(session, "setBreakpoints request: " .. vim.inspect(request)) |
| 113 | + |
85 | 114 | return |
86 | 115 | end |
87 | 116 |
|
@@ -117,6 +146,8 @@ function M.setup_hooks(plugin_id, config) |
117 | 146 | register_listener("before", "event_continued", plugin_id, function(session, info, body) |
118 | 147 | for _, bp in ipairs(get_breakpoints(info.pid)) do |
119 | 148 | if bp.__verified == false then |
| 149 | + session_debug("Rejecting breakpoint #" .. tostring(bp.id)) |
| 150 | + |
120 | 151 | local bp_info = utils.dap_breakpoint_by_state(bp) |
121 | 152 |
|
122 | 153 | if bp_info then |
|
0 commit comments