I am playing with the following library/libraries to plug the DAP interface code hole:
https://github.com/google/cppdaphttps://github.com/stoianmihail/cppdap-debuggerI am using the following DAP LLDB adapter for testing:
https://github.com/vadimcn/vscode-lldbYou will need to extract the
https://github.com/vadimcn/vscode-lldb/releases/download/v1.7.0/codelldb-x86_64-windows.vsix file using 7zip. I run the adapter using the following command:
adapter\codelldb --port 12345
I have not looked at how VSCode starts the different DAP adapters as I want to get something "working" first. "Working" is load an exe, set a break point on a line, run and hit the break point then run to the end of the hello world type app.
Attached in the 7z is my sample test project inc source that has a a hacked source code sample (LLDB_Client_Test.cpp) that uses bits from both github "cppdap" repos, but the launch step does not return or show anything. It does show the DAP adapter initialize request results, so at least I know the app and DAP adapter are communicating.
The following is a quick guide to build the cppdap library using MSYS2:
The Code::Blocks Debugger Application Protocol debugger plugin uses the following libraries:
*
https://github.com/google/cppdapUse the following steps to build the cppdap library using MSYS2:
1. Clone the repo using the following command:
* git clone --recurse-submodules
https://github.com/google/cppdap2. Generate the makefile:
bash
cd <path-to-cppdap>
mkdir build
cd build
cmake .. -G "MSYS Makefiles"
3. Finally, build the project:
make
P.S. One thing I spotted yesterday that I need to get my head around is that the DAP protocol launch request spec as it has the following in the spec, so then it makes the IDE only able to launch DAP adapters that it knows about as the launch arguments are specific to the DAP adapter.... I hope this is not the case, but this definitely needs more investigation to see how the launch request is implemented in IDE's.
"Since launching is debugger/runtime specific, the arguments for this request are not part of this specification."
Hope this is helpful.