Giter VIP home page Giter VIP logo

Comments (10)

gregg-miskelly avatar gregg-miskelly commented on July 19, 2024

@madkat Do you already have an Expression Evaluator on Windows that you are porting to Linux? Or are you trying to create one?

In case you haven't seen it:

from concordextensibilitysamples.

madkat avatar madkat commented on July 19, 2024

@gregg-miskelly We already have one implemented on Windows that we distribute as part of a VS extension. I think that logging topic will be a good start for trying to debug what is happening on the Linux side.

from concordextensibilitysamples.

madkat avatar madkat commented on July 19, 2024

Quick update: I was able to get my EE built correctly, registered in the default.vsdbg-config.json, and deployed into the folder. It looks like as long as all of my deps are .NET Standard or .NET 5, it all works, which is just amazing.

Any tips for trying to get my components deployed on the Linux side? The ideal flow would be hooking into the same mechanism that deploys GetVsDbg.sh. Any insight into what is or is not extensible would be a huge help.

from concordextensibilitysamples.

gregg-miskelly avatar gregg-miskelly commented on July 19, 2024

Excellent!

Any tips for trying to get my components deployed on the Linux side?

Do you know which scenarios you are trying to support (or at least support initially)? Does your language require a runtime library that is NOT just distributed via NuGet?

XPlat scenario list --

  • Visual Studio
    • WSL
    • Docker
    • Attach to Process
    • Offroad launch
  • Visual Studio Code
    • Local debugging
    • Docker debugging
    • Pipe Transport
  • Visual Studio for Mac
    • Local debugging
    • Docker debugging

from concordextensibilitysamples.

madkat avatar madkat commented on July 19, 2024

My goal for an initial release is to support Attach to Process over SSH and WSL from Visual Studio. Deployment of the user application from Visual Studio, remote starting the process, and then attaching would be the ultimate user experience, but we are starting with the minimum viable product for usability.

We do have a language runtime library distributed via NuGet, but it is not required for our EE. I would expect the runtime library to be sideloaded alongside the user deploying their application.

The big question is whether or not there is an integrated way to deploy my EE and its dependencies to .vs-debugger\vsver. It looks like attaching from VS causes the creation of .vs-debugger and executes GetVsDbg.sh. Is any part of that extensible?

from concordextensibilitysamples.

gregg-miskelly avatar gregg-miskelly commented on July 19, 2024

For attach to process, I can't think of a way to make this work automatically today. I would suggest filing a suggestion ticket (Help->Send Feedback->Suggest a Feature) to provide an extensibility point for this. The best work around I can think of in the mean time is just to provide users with a script and instructions (example: https://github.com/OmniSharp/omnisharp-vscode/wiki/Attaching-to-remote-processes#installing-vsdbg-on-the-server).

For WSL: Since this scenario involves a project system, there might be a way to somehow know that debugging was about to start for WSL. I am assuming you have some sort of project system customization already?

CC'ing @NCarlsonMSFT who knows far more than I do about how the WSL integration works.

from concordextensibilitysamples.

NCarlsonMSFT avatar NCarlsonMSFT commented on July 19, 2024

@madkat are you interested in supporting attaching to a running process in WSL or the WSL launch profile command?
If the latter, there is currently no explicit extensibility mechanism for the WSL launch profile component; however, there are extensibility points in the projects system where you could potentially prepare the WSL distro before debugging started. Let me know if that's the interesting scenario and if so I can point you in the right direction.

from concordextensibilitysamples.

madkat avatar madkat commented on July 19, 2024

@NCarlsonMSFT Very interested.

from concordextensibilitysamples.

NCarlsonMSFT avatar NCarlsonMSFT commented on July 19, 2024

If you own the projects (or a common NuGet) one easy way is to add a Project Capability and then implement IProjectDynamicLoadComponent to load code for handling the project.

You can then Link an ActionBlock to the ILaunchSettingsProvider's SourceBlock. In the ActionBlock you can then track if the active profile is one that you should handle and if so, prep the default (or selected) distro for debugging.

from concordextensibilitysamples.

madkat avatar madkat commented on July 19, 2024

@NCarlsonMSFT I really appreciate the additional information. That should give us a good starting point.

from concordextensibilitysamples.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.