-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Port to VS Code #40
Comments
I don't know VSCode well enough to tell. VSIX is only a zip file containing some config files. This extension doesn't use the DAP directly (assuming it's what is used internally), it uses EnvDTE assembly which AFAIU is only in MSVS. Another problem is that it has to be possible to draw in a window and AFAIK it is not possible in VSCode. There might be a workaround for this, i.e. drawing to a file and displaying it, who knows. In addition to this it'd be nice to be able to access the memory of the debugged program directly to speed up the debugging. So with VSCode we'd probably need a separate program/library for that and this would be different on all of the platforms supported by VSCode. These are only my guesses but I think this'd be either impossible, very hard or be a maintnance hell. And I don't even have enough free time to look into this. But if you have I'd be curious to know the results. |
@TrackerSB I looked into this and I think I know the majority of the pieces that would be needed, including reading from memory. It seems I was wrong and that writing an extension such as this is possible. I'll play with it but I don't know when it will be ready. Which parts of this extension would you like to see first? |
Wow! I didn't expect that. Thank you. I also thought about how to implement such an extension. So far the most interesting part for me is reading the memory. |
Hi @awulkiew Thanks a lot for this useful tool. I'm also interested in porting it to VS Code since this is my most frequently used platform. Just curious whether it is difficult for the array plotting part to be converted to VS code extensions? |
I'd start with search for existing solutions, for example, https://marketplace.visualstudio.com/items?itemName=hediet.debug-visualizer and read the code, and compare with this implementation for the big VS. |
@nbwuzhe I'm working on it right now in my free time. I have all building blocks figured out and am currently working on supporting user-defined containers like vector. When I have some basic version ready I'll make the repo public and release it. I'm also waiting for a response for my issue at MIEngine. My primary concern is C++ and various debuggers may be used with VSCode. There is a problem with VSCode and GDB (maybe LLVM too I haven't checked). If a variable defined with typedef is debugged with GDB the type of variable returned with DAP is the name of the typedef, not the original type. This is also why MSVC natvis files may not work with VSCode and GDB. There are some issues about this at vscode-cpptools. If my issue at MIEngine is addressed then it should at least allow me to work around this. Without solving it such extension doesn't make sense for C++. |
Hi Mateusz, thanks for your information. To be honest I tried that visualizer but it seems not to work at all for C++: only the first element of the array/vector is showing. I looked into the Issues of that repo with a similar report from the other users, but unfortunately, the author replied that he was not familiar with Cpp and could not help much. |
Thanks for the detailed info. Currently I'm doing remote debugging using my Windows PC on a Linux server and it is easy to achieve with VS Code with SSH-Remote extension, however, Visual Studio 2019 is not supporting this way, and that's why I'm seeking to have your useful tool to be extended to VS Code. I'm trying to grab up your code in this repo to see how to help, but it might take some time. Thanks a lot for your efforts! |
FYI, if your project is CMake-based, then remote debugging a program on Linux machine is also easy to configure: |
@nbwuzhe The extension for vscode is going to be different than this one, written in typescript, not in C#, using different APIs, etc. So it is not a port of this extension but another one written from scratch. I have it in a different repo which is currently private. As Mateusz said, it's best to search GitHub for extensions for vscode that are communicating with the debugger to see how this may be done. There are of course official references of APIs too. While debugging remotely which debugger are you using? |
@TrackerSB @nbwuzhe @mloskot |
That's wonderful! Can't imaging that you done that so quick. Will give a test and give feedback. And sorry for late reply, I'm using cppdbg while doing remote debugging. |
Indeed, you've been amazingly quick, kudos! |
How hard would it be to port this plugin for VS Code?
Both MSVS and VS Code use the VSIX format and both use the Debug Adapter Protocol Interface.
The text was updated successfully, but these errors were encountered: