Comments (3)
Here is fine. I don't mind discussions here
I usually prefer the m_client.Reset()
since I don't really want to rely on an external implementation to implement this for me, consider the option that the process might crash or fail to follow the protocol to the letter?
In my implementation within CodeLite, I handle all cases like this:
- OnDapLaunchResponse with
success == false
I call to an internal methodDoCleanup()
- OnDebugStop() - when user clicks the
Stop
button, I call toDoCleanup()
- OnDapExited - same, I call
DoCleanup()
DoCleanup()
does the following:
- Removes the debugger marker from the UI
- calls
m_client.Reset()
- Terminates the dap server (
codelldb
orlldb-vscode
or whatever)
Some notes and observations from testing it against 2 servers:
You should note that I am testing the demo against two dap-servers: codelldb
and lldb-vscode
(my personal favorite)
There are problems, but in general, lldb-vscode (from the LLVM team, the people how wrote clang and clangd) seems the better and more reliable to me
There is an issue with setting breakpoints, you can add function breakpoint (click on the new button I added to the UI and type the function name). However, placing breakpoints with file:line format does not work reliably. It only works when passing relative file path (e.g main.cpp instead of C:\src\main.cpp) - this looks like a bug to me (lldb-vscode can handle full paths, but it requires some strange format like /Users/eran/src/main.cpp
instead of native format like C:\Users\eran\src\main.cpp
)
from wxdap.
Thanks very much for the post.
I found some issues with the codelldb and now that I have started to use lldb-vscode I have found it to be more reliable.
I have just started to add breakpoint support and have to modify the code to make the path relative as I am using the GDB/MI code as a starting point.
The lldb-vscode path looks like a CygWin path and I had to do this conversion last year when I updated the Cygwin debugging support to work in C::B. If you look in the https://github.com/acotty/CodeBlocks_Unofficial_Testing/blob/master/src/sdk/cygwin.cpp file and look at the GetCygwinPath() function that I did to make the conversion. Unfortunately I used the Cygwin cygpath.exe so it will not work, but will give you some pointers if you do want to eventually use lldb-vscode.
from wxdap.
I have breakpoint working (no s) as the existing code sets one breakpoint in a file at a time and needs to be refactored.
from wxdap.
Related Issues (7)
- Line offset 0 or 1 quirk/issue/query HOT 3
- Linux workspace build failing HOT 5
- Mac build fails due to #include <tr1/memory> instead of #include <memory> HOT 3
- Missing SetExceptionBreakpointsRequest for exception capture/intercept HOT 10
- setBreakpoints request path query HOT 10
- Support for the GDB/MI interface HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wxdap.