Everything we do at AdaCore is centered around helping developers build safe, secure and reliable software.
For over 25 years, we've worked with global leaders across the military and civil avionics, defense systems, air traffic management/control, space, railway, and financial services industries, building tools and providing services that ease the complex and difficult process of developing high-integrity software. As the need for truly secure and reliable applications expands into industries such as automotive, medical, energy, and IOT, we’re advancing our time-tested technologies to bring expertise and services to help a whole new generation of developers. Through our subscription-based business model and dedicated services arm, we have worked with hundreds of customers over the year on thousands of projects.
Our 120 experts worldwide in the US (New York, Lexington), France (Paris, Toulouse, Grenoble and Vannes), the UK, and Estonia, all play a role in developing state-of-the-art technologies to meet the challenges of building the highest grade of software.
Joining AdaCore is about joining a culture of innovation, openness, collaboration and dependability, which defines how we work together, with our customers and partners.
Implement the Microsoft Debug Adapter Protocol in GNAT Studio
GNAT Studio is a multi-language IDE with advanced support out-of-the-box for Ada, SPARK, C, C++ and Python. Debugging support is also provided via our GDB integration but is pretty hard to maintain. Also, adding support for other debuggers demands a huge amount of time with our current software architecture.
To overcome this kind of problems, Microsoft has come up with a solution called Debug Adapter Protocol (DAP). The idea behind the Debug Adapter Protocol is to abstract the way how the debugging support of IDEs communicates with debuggers or runtimes into a protocol (more info can be found here: https://microsoft.github.io/debug-adapter-protocol/). This allows to standardize the communication between IDEs and debuggers, allowing to add support for new debuggers pretty easily.
The subject of this internship is to provide a design and a prototype implementation of the Debug Adapter Protocol inside GNAT Studio. This will allow GNAT Studio to support other debuggers in the future (e.g: LLDB) and may also allow us to replace the current GDB integration.
Skills required: This internship demands a good ability to design a proper software architecture. Good programming skills in a high-level language (e.g. Ada or C++) are also required.
Timeframe and location:
The internship will take place in the offices of AdaCore in Paris, France. A 6 months period would be ideal for this internship.