https://www.alternetsoft.com.au/blog/python-script-debugger-based-on-debug-adapter-protocol

TECHNOLOGY PREVIEW - PYTHON SCRIPT DEBUGGER BASED ON DEBUG ADAPTER PROTOCOL

Describes implementation of integrating Python scripts executing and debugging into .NET applications b based on Debugger Adapter protocol and Python.NET
5 min read

We recently released a new version of AlterNET Studio, which supports IronPython scripting/debugging - you can download it to see how it works.

IronPython is compatible with Python 2.7 and is designed to work with .NET Framework libraries. This is a perfect solution for users looking to add lightweight Python scripting to their applications. The downside of IronPython is that it’s not compatible with Python 3 (yet), and it’s hard to estimate when it will get there. Another limitation is that it does not support popular python libraries, like NumPy.

With that in mind, we started looking at implementing script debugging using native tools that support Debug Adapter Protocol (DAP), such as Python.

The Debug Adapter Protocol makes it possible to implement a generic debugger for a development tool that can communicate with different debuggers via Debug Adapters. Several Debug Adapters are already implemented for various programming languages, including Python, C/C++, Java, Lua, and others.

For now, we have created a proof-of-concept prototype of the Python debugger, which includes the following parts:

  • Script Debugger based on Debug Adapter Protocol for Python. The Debug adapter server runs in the same application process and sends/receives debugging commands and events from the application via TCP/IP protocol.

  • Code editor with LangServer.org - based Python code parser. Like Debugger Adapter Protocol, the LangServer protocol is used between a tool (the client) and a language smartness provider (the server) to integrate features like auto complete, go to definition, find all references, and like into the tool.

  • Python.NET package that allows accessing .NET objects from Python code. In our example, we have just used the WinForms MessageBox class to verify it’s possible.

There’s a way to go from this prototype to a fully working version, and the full implementation of the Script debugger based on DAP is scheduled for the next major release (version 8).

In the future, we will look at supporting debugger adapters for other programming languages, including C/C++ and Java.

Dmitry Medvedev
Dmitry Medvedev
We now support the Visual Studio code theme and descendant TextMate color theme, which provides the distinct appearance of outlining sections, guidelines, folded sections, and the current line. It supports dark, light, and all other VS Code color themes.