Over the last couple of years I have added debuggers for several different languages to Eclipse Che. It required a lot of effort. Recently I’ve started adding the same debugger support to the Theia IDE, using the Debug Adapter Protocol (DAP) used in VS Code.
In Eclipse Che, we have made a conscious effort to adopt de facto standards, to enable our users to use the widest selection of tools possible. To support many different programming languages, we use the Language Server Protocol (LSP) popularized by VS Code, and to support a wide array of debuggers, we decided to adopt…
In my previous blog post I wrote about How to Add a New Debugger for Eclipse Che. In this article, I am glad to introduce a real debug adaptor, the Pig Latin Debug Adapter, delivered as a VS Code extension.
Apache Pig is a project for processing large amounts of data stored in the Hadoop database. It is made up of two parts — a high level programming language called Pig Latin, designed for ease of parallel execution, and an execution runtime based on the Java Virtual Machine.
Pig Latin is a popular language for Hadoop application developers, because it…
The simplest way to start developing a new debugger is to generate a sample and understand how it works. Integrating a new debugger into Eclipse Che is very similar to how it is done in VS Code. So, let’s install the latest Theia plugin yeoman generator which will generate a simple debugger plugin for Che Theia.
npm install -g yo @theia/generator-plugin
Generate a sample by running:
When prompted confirm choices for “Backend plug-in”, “Samples” and then “Debugger sample”:
It will create a project and a ready-to-use plugin which can be deployed in Che Theia. This is a mock…
The Java debugger in Eclipse Che has gotten new capabilities for thread dumps and working with call stack frames to help you better diagnose and solve issues in your Java applications.
We have added a Java thread dump feature that lists all threads while interactively running your application in debug mode and watching the source code.
You can select any frame in the call stack, then walk the stack frame-by-frame and see the list of variables as your application executes. Naturally you can update the variables in a specific frame and evaluate expressions to isolate value-dependent issues.