Sunday, February 22, 2009

Netbeans Python : just take a break

This time latest enhancements in netbeans python debugger are concerning breakpoints ; let's just take five minutes to describe them in details.

First the functionalities described here are available on Netbeans trunk starting with hudson build #1030

Breakpoints in python debugger were almost basically operational, but where missing extra goodies features which are usually expected to be operational in modern IDE language debuggers :

- Run to cursor.
- Step out
- Conditional breakpoints
- Break on hit counts.

Starting with build #1030 the above features are now available with some extras minor fixes also concerning breakpoints.

Usually the most practical way of setting a breakpoint in Python as in any other Netbeans supported language is by just left clicking on the gutter of the line where you want the breakpoint to be set.



then breakpoint is also visible in the breakpoint window as well:



contextual menus are available when right clicking either in the breakpoint gutter



or in the breakpoint window



The new feature here is now the capability of customizing breakpoints by selecting the breakpoint properties ; you can then customize the breakpoint and either set a condition or a hit count to the selected breakpoint if needed :



And finally the "run to cursor" and "step out" debugging actions have been implemented and are now available as well

Sunday, January 18, 2009

Bug fixing and improvements in python debugger

After the initial drop of the multithreaded version of the debugger a couple of weeks ago, my main activity had consisted in making internal improvements and fixing initial bugs.

The main problem with the debugger consists mainly in maintaining Python/Jython compatibility and checking with the different python versions . Jython is setting more critical sections in settrace that Python and avoid debugger's deadlock is sometime a real challenge ;=) with jython then.

As soon as I am confident enough with the debugger multithreaded foundations I'll then start the functional enhancements that will be more visible in the coming weeks.

It's also important to start keeping the level of bug low enough since we shortly will enter an intermediate beta drop of the 7.0 ... So chasing the easy to fix bugs has also been part of my activity last week.( IssueZilla 156502 and 156967 have been fixed during that period )

Since I am using Netbeans python for my own projects on a daily base, I feel frustrated not to have multiple file selections on File choosers in python projects and python platform panels ... Since that was also a very simple improvement I made that change as well which is available on 7.0 trunk from build #663

Saturday, January 03, 2009

JpyDbg Multithreaded Python debugger integrated in Nbpython

In August 2008 Allan Davis and Ted Leung got in touch with me and just asked if I was interested to integrate my previous JpyDbg python debugger work in nbpython project. At that time I felt that interest of Python in Netbeans community had increased and it was a good time to replace the old 'JpyDbg for netbeans' with a full support of Python in Netbeans IDE.

For sure I was enthusiastic ... So I joined the nbpython project at that time since I saw that with people like Allan, Ted and Tor Norbye and many other contributors Nbpython was starting in good shape to make Python become fully supported by the Netbeans IDE as other core languages like Java,C/C++ Php and Ruby. Those multiple language integration as core features make Netbeans becoming the IDE with the best language coverage in Core features now.

Having all languages supported as Core for an IDE is a killer feature compared to other IDE where Java and C/C++ are the only languages usually integrated as core features other languages being delivered as plugins becoming then second class citizens that may suffer quality and stability/compatibility problems as new version of the IDE are coming out.

Do not misunderstand : plugins are greatfor small or medium features inside an IDE ... But for big structural features like new language support, having a modular core integration is far better , more robust and easier to maintain closely with IDE life cycle

So I started this great venture by first providing a Quick and dirty integration of the old JpyDbg backend for the 6.5 python ea just in order for developpers to be able to play with a first version nbpython debugger in mid september 2008

Next I have been reworking the backend of the debugger to provide a robust multithreaded Python And Jython compliant backend debugger kernel 100% written in Python derived from the standard bdb.py python native debugger Kernel.

This new reworked debugger version is now out by beginning of year 2009 on Netbeans 7.0 trunk starting with nbpython build #513

bellow is a screenshot a a Netbeans nbpython jython/swing debugging session running inside an Ubuntu box :




And I also decided that it was a good time to restart my bloging here in order to provide extra informations about new available features and infos around nbpython debugger ... So stay tuned ;=)