Netbeans developers are planning lots of fixes and improvements for the next version (6.5). But one of them is particularly interesting for those who already tried to debug a multithread system: multithreaded debugging support. The matter is that, in "normal" debuggers, you can debug only a single thread, meanwhile lots of things happen behind you, in other threads. But next Netbeans version will bring us this shiny tool. Some screenshots show that this new feature will be very intuitive and easy to use. Everything is visual and include some nice features, like a deadlock detector. Netbeans developers had to change threading model, to be able to implement this new feature. According to Netbeans wiki, some points are summarized below:
- Posted by: Thiago Regal
- Posted on: June 27 2008 10:44 EDT
- Default breakpoint only suspends breakpoint thread.
- Step only resumes current thread when invoked and suspends current thread when completed.
- Evaluation is done resuming the current thread (other threads unsuspended by default breakpoint or step). No deadlock caused by debugger might happen as far as no thread is explicitly suspended by the user (via suspend action or some breakpoint).
- 'Step interrupted by a breakpoint' issue does not exist with default breakpoint. (Except the stepping thread itself encounters a breakpoint.)You can see more details at Netbeans Wiki or Bistro Java
- Re: Multihreaded debugging planned for Netbeans 6.5 by Eugen Kuleshov on June 30 2008 09:20 EDT
- Netbeans by Werner Punz on June 30 2008 13:03 EDT
- Spelling by Steve Punte on July 01 2008 14:36 EDT
I wonder how this thing compares with Eclipse thread debugging that had multi-session debugging from the beginning and deadlock detection for several years.
It's one of the reasons I finally moved to Eclipse. Netbeans seems to have focus on all the features, but QA seems to be a lesser concern. I was constantly running into issues with something working fine at first glance, but falling apart once you try to do something more serious with it (I won't mention how many bugs I run into in the XML editor alone, just for DTD/Schema functionality). In the end I moved to Eclipse...sure, maybe they don't go as crazy on the features (although there are plenty of them and some, such as incremental compilation are better), but in 99.9% of the cases, when it's there it just works. From a stability point of view, Eclipse has an edge here. As for Matisse, NB's biggest advantage for a long time, I stopped needing it once I discovered MigLayout, the essential tool in any Swing developer's toolbox. :-)
Not to highjack the thread here, but I was recently involved in a rapid prototype GUI project, and I had the choice between SWT and Swing. I had dabbled with both in the past and really loved SWT/Eclipse Visual Editor for initial GUI layout. Now I discover it no longer works with Eclipse Ganymede... So I Switched to NetBeans 6.1. My experience was so-so, and I found that I don't like Swing as much as SWT. Maybe it was the whole forms/binding idea. Do any of you guys know of an equivalent tool for SWT thats *NOT* really old? Thanks.
JIDE: http://www.jidesoft.com, haven't found anything that's even near this in terms of accelerating Swing development.
Using VE with Ganymede is possible, you just have to use a patched version. The process is described here: http://wiki.eclipse.org/VE/Installing The patched VE can be fetched from: http://sourceforge.net/project/showfiles.php?group_id=131065&package_id=154855
Hmm: "Multihreaded debugging ..." Was that suppose to be "MultiTHREADED debugging" or "MultiHEADED debugging"? It kind of could go either way.