Tuesday, March 10, 2009

Improve your debugging speed with EVars Eclipse plugin

Update: Added alternate link to screen-cast. Workaround to start plug-in

I have been debugging a lot lately which included open source libraries, closed source web-service engine and parts of closed source application server (WebLogic). During this painful debug-fest I felt a strong need for several features missing in Eclipse (NetBeans as well, for that matter) . Debugging closed applications is a pain beyond imagination, even with IDE integrated decompilers, it takes incredible amount of patience and time to debug.

To improve productivity (or prevent burnout), I jotted down a plugin to export/import live variables, filter variables view with a xpath like expressions etc. The plugin, called 'evars', features a small expression interpreter (similar to xpath) which can do a wonderful job of filtering variables on current stackframe. It also allows you to export variables to a file and reload them at a later point.

For the first time, I have attempted to create a screencast to explain its usefulness. You may watch it over here [10mb non-streaming, 1275x860], alternate link (open with your browser).

I have also created a beta release to see if it finds any interest which you can download it from here [JAR ~800kb, Jdk6] (Click here for Java 5 version) and drop it in dropins folder [Eclipse 3.4+]

If you find it interesting, please leave feedback here.

14 comments:

Eugene Kuleshov said...

It would be neat if instead of adding completely new view you could add a custom page to the variables view. Like it is done for Java and tabular view there.

Michael Scharf said...

This is really cool.

It would be nice if you could give a summary of the expression language. A short table with a few examples would help a lot.

I also have a problem getting it to run in a java 1.5 environment. Are there features of java 1.6 that needed for this plug-in?

Michael

Robert Konigsberg said...

This is very cool.

Eric Rizzo said...

The screencast is unavailable; Google Pages says the bandwidth limit has been exceeded. Is there somewhere else you can host it so we can watch?

Nirav Thaker said...

@Eugene
I am considering that, thanks for the tip.

@Michel
I will add a quick reference in project wiki as soon as I can. The plug-in doesn't really need 1.6 JVMTI to run it may be my compiler setting. I will be adding download for 1.5.

@Eric
I have added alternate link, just open it in your browser (Sorry I am not aware of any good hosting place).

Thanks for comments!

Nirav Thaker said...

I have created OPath quick reference http://code.google.com/p/evars/wiki/OPathQuickReference. Also created alternate download for Java 1.5 vm.

Michael Scharf said...

Very nice -- thank you!

The only thing I don't understand is the '.' the context step...

Nirav Thaker said...

Michael,

The context step really refers to the start of the graph. Consider following graph in your variables view for example,

A
+-B
+-C
+--D
+--E

If you have selected variable C in variables view it is considered the context and whenever you write '.' in your expression it refers to C.

Following OPath expression

./*

Will select variables 'D' and 'E'.

./*/./D

will select variable D. Hope that clears up some confusion.

Mahesh Desai said...

I love it. This is really a nice plug-in. I will try my hand on it.

javabuddy@java synchronized keyword said...

This looks very promising plugin man, indeed debugging is very painful and slow process specially if you are doing eclipse remote debugging
and connected to some remote host, I hope this plugin will save some time.

Fer Troya said...

Is this plugin still active? I'm having a hard time trying to make it work from Eclipse 3.5

Luc Russell said...

Good plugin, I especially like the export function. Just referenced it in a question on StackOverflow: http://stackoverflow.com/questions/7890821/is-there-a-way-to-search-the-variables-available-at-the-current-place-in-the-sta/23391018#23391018

moswald said...

I know this is a pretty old thread, but I'm trying to install the eVars plugin and having a rough time. I'm using the Kepler release of Eclipse. I've tried both available jar files, copying them into the dropins/plugins folder and starting eclipse with the -clean option. But it doesn't show up under installed plugins (not that I can find anyway) and I have no different options in the variables window when debugging. I'm mostly interested in the ability to save variables to file, because I've got some datasets that I need to process in Matlab and don't have another way of exporting them. Any help would be VERY appreciated. Thanks.

DjinnCoyote said...

Hi, does the plugin still work with Eclipse Kepler?

When I search for it from the Eclipse Marketplace pane within Eclipse, it is found but doesn't include an Install button.

When I manually drop the jar into the dropins folder (or the dropins/plugins folder), and start Eclipse using -clean, the plugin doesn't seem to get loaded.