Saturday, December 04, 2004

Debugging Demystified - Part I

Debugging (in the context of software engineering) is a process of identifying the cause for defective behavior of a system .In raw terms it can be defined as fixing a bug in the software. Debugging plays a very important role in Software Engineering process because this is the phase where the bugs are really fixed.Now the question to be asked is How could Debugging be done. The answer is very simple.There are Debuggers which are specifically used for Debugging purposes alone. So what is a Debugger and why at all should a Debugger be used. ??? Before we get into that. Let me define what is a Debugger and the purpose of it. The purpose of a debugger is to allow you to see what is going on "inside" another program while it executes--or what another program was doing at the moment it crashed.
Lot of Debugging tools are available which can be used very easily.Almost all IDEs have debugging functionality inbuilt in them .One of the them is Microsoft Visual Studio which has very good debugging functionalities embedded into it which makes it really easy for the developer to fix bugs in the Code.As far as Linux Platform is concerned there are handful of Debuggers available. GDB is a very good Debugger but the main disadvantage of this IDE from my point of view is that its a Command Line tool which makes it quite difficult to use because to use GDB you have to make sure that you read the GDB documentation first , memorize the commands and then start using it.There has to be a GUI for Debuggers which would make Debugging really easy .Infact i was in need of a real good Debugger with a decent User Interface which would allow me to set breakpoints with a click of my mouse button and i found out DDD. DDD stands for Data Display Debugger and it has got a very good User Interface which makes it really easy to use and morever people who have got used to Visual Studio wont really find it difficult to migrate to DDD. Ultimately less spent time is spent in learning about the tool and more time is spent in improving the Debugging skills which counts more. I ll just give a small Introduction to DDD.

Technically Speaking DDD is a front end to the command line Debugger GDB which can also be called as inferior Debugger because it lies at the layer beneath DDD. To debug an executable binaries DDD can be used with GDB,DBX,Ladebug,or XDB.

GDB, the GNU Debugger, is the recommended inferior debugger for DDD. GDB supports native executables binaries originally written in C, C++, Java, Pascal, Chill, Ada, and FORTRAN.

To debug Java byte code programs, you can use DDD with JDB, the Java debugger.

To debug Python programs, you can use DDD with PYDB, a Python debugger.

To debug Perl programs, you can use DDD with the Perl debugger.

....To be Continued :-)


Post a Comment

<< Home