Julia implementation of the Debug Adapter Protocol
To run a debug session, first instantiate DebugAdapter.DebugSession
by passing it a connection, which can be a socket, named pipe. Then call run
on the session:
import DebugAdapter
# Create or acquire a connection
conn = ... # This should be a Base.IO subtype, for example a named pipe or socket connection
session = DebugAdapter.DebugSession(conn)
run(session)
The call to run
will return once the debug session has finished.
The Julia specific launch arguments can be seen in the type JuliaLaunchArguments
in this repo. The most important one is program
, which needs to be an absolute path to a Julia file.
The Julia specific attach arguments can be seen in the type JuliaAttachArguments
in this repo. Note that even when the debugger is attached, no code will automatically be debugged. Instead, one needs to run the code that should be debugged via a call to DebugAdapter.debug_code
like this:
mod = Main # This is the module in which the code should run
code = """
println("Hello world")
""" # This is the code that should be run
filepath = joinpath(homedir(), "something.jl") # This is the filepath that should be used for the debugger
DebugAdapter.debug_code(session, mod, code, filepath)