Skip to content

Commit 67d3dfc

Browse files
committed
Make sure the compilation-start process is stopped after disconnect.
Fixes #236
1 parent 1577901 commit 67d3dfc

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

dap-mode.el

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,8 @@ The hook will be called with the session file and the new set of breakpoint loca
178178
;; The result of initialize request. It holds the server capabilities.
179179
(initialize-result nil)
180180
(error-message nil)
181-
(loaded-sources nil))
181+
(loaded-sources nil)
182+
(program-proc))
182183

183184
(cl-defstruct dap--parser
184185
(waiting-for-response nil)
@@ -581,7 +582,10 @@ thread exection but the server will log message."
581582
(interactive (list (dap--cur-active-session-or-die)))
582583
(dap--send-message (dap--make-request "disconnect"
583584
(list :restart :json-false))
584-
(dap--resp-handler)
585+
(lambda (result)
586+
(when-let (proc (dap--debug-session-program-proc session))
587+
(lsp--info "Killing process %s" proc)
588+
(kill-process proc)))
585589
session)
586590
(dap--resume-application session))
587591

@@ -1156,18 +1160,23 @@ before starting the debug process."
11561160
:wait-for-port :type :request :port
11571161
:environment-variables :hostName host) launch-args)
11581162
(session-name (dap--calculate-unique-name name (dap--get-sessions)))
1159-
(default-directory (or cwd default-directory)))
1163+
(default-directory (or cwd default-directory))
1164+
program-process)
11601165
(mapc (-lambda ((env . value)) (setenv env value)) environment-variables)
11611166
(plist-put launch-args :name session-name)
11621167

11631168
(when program-to-start
1164-
(compilation-start program-to-start 'dap-server-log-mode
1165-
(lambda (_) (concat "*" session-name " server log*"))))
1169+
1170+
(setf program-process
1171+
(get-buffer-process
1172+
(compilation-start program-to-start 'dap-server-log-mode
1173+
(lambda (_) (concat "*" session-name " server log*"))))))
11661174
(when wait-for-port
11671175
(dap--wait-for-port host port dap-connect-retry-count dap-connect-retry-interval))
11681176

11691177
(unless skip-debug-session
11701178
(let ((debug-session (dap--create-session launch-args)))
1179+
(setf (dap--debug-session-program-proc debug-session) program-process)
11711180
(dap--send-message
11721181
(dap--initialize-message type)
11731182
(dap--session-init-resp-handler

0 commit comments

Comments
 (0)