Subscribe by Email


Showing posts with label IBM Rational Purify. Show all posts
Showing posts with label IBM Rational Purify. Show all posts

Friday, December 28, 2012

What is the difference between Purify and traditional debuggers?


The IBM Rational Purify grants power to the developers to deliver a product whose quality, reliability and performance matches with the expectations of the users. The purify plus combines the following and provides 3 benefits:
  1. Bug finding capabilities from the rational purify,
  2. Performance tuning effects from the rational quantify and
  3. Testing rigors from the rational pure coverage.
Together these three things make purify a different debugger that what the traditional debuggers we have. The above mentioned 3 benefits are measured in the terms of the faster development times, less number of errors and better code. 

About IBM Rational Purify

- The purify is actually a memory debugger by nature and is particularly used for the detection of the memory access errors especially in the programs that have been written in languages such as C and C++. 
- This software was originally developed by Reed Hastings, a member developer of the pure software organization. 
- However, Rational Purify exhibits the similar functionality as that of the Valgrind, bounds checker, Insure++.
- A process called dynamic verification using which the errors that occur during the execution can be discovered by a program is supported by the rational purify just like a debugger.
- However, there is another process called the static verification which is just the opposite of the dynamic verification and is also supported by the rational purify. 
- This process works by digging out inconsistencies present in the program logic. 
- Whenever there is a linking between a program and purify, the correct version of the verified code is automatically inserted in to the executable part of the code by either adding it to the object code or by parsing. 
- So, if whenever an error occurs, the location of the error, its memory address and other relevant info will be printed out by the tool. 
- Similarly, whenever a memory leak is detected by the purify it generates a leak report towards the exit of the program.

Difference between Rational Purify and Traditional Debuggers

- The major difference between the rational purify and the traditional debuggers is the ability of detecting the non – fatal errors. 
- The traditional debuggers only show up the sources which can cause the fatal errors such as a de-referencing to a null pointer can cause a program to crash and they are not effective in finding out the non – fatal memory errors. 
However, there are certain things for which the traditional debuggers are more effective than the rational purify for e.g.
- The debuggers can be used to step line by line through the code and to examine the memory of the program at any particular instance of time. 
- It would not be wrong if we say that these two tools are complementary to each other and can work great for a skilled developer. 
- The purify comes with other functionality which can be used for more general purposes rather than the debuggers which can be used only for the code.
- One thing to be noted about the purify is that it is more effective for the programming languages in which the memory management is left to the program developer. 
- This is the reason why the occurrence of the memory leaks is reduced in the programs written in languages such as java, visual basic and lisp etc. 
- It is not like these languages will never have memory leaks, they do have which occur because of the objects being referred to unnecessarily (this prevents the re – allocation of the memory.). 
- IBM has provided solution for these kind of errors also in the form of its another product called the rational application developer.
- Errors such as the following are covered by the purify:
  1. Array bounds
  2. Access to un-allocated memory
  3. Freeing the memory that is un-allocated
  4. Memory leaks and so on. 


Wednesday, December 26, 2012

What is IBM Rational Purify?


Rational Purify is another dynamic tool from IBM which is meant for carrying out the analysis of the software systems and applications and to provide help to the software developers in producing a code that is more reliable. 

The IBM rational purify comes with unique capabilities:
  1. Memory leak detection: This capability is related to the identification of the memory blocks to which there are no valid pointers.
  2. Memory debugging: This capability is related to pin – pointing memory errors which are quite hard to be discovered such as the following:
a)   Points in code where the memory is freed improperly,
b)   Buffer over flow
c)   Access to uninitialized memory and so on.
  1. Performance profiling: This capability is involved with highlighting the bottle necks of the program performance and improving the application understanding via some graphical representations of the calls to the functions.
  2. Code coverage: This capability involves the identification of the code with the line – level precision that is untested.
- Platforms such as the AIX, solaris, windows, Linux and so on support the IBM rational purify. 
- The code that is developed with the help of the IBM rational purify is not only reliable but also faster. 
- This analysis tool is very well supported by the windows application development environment. 
- It has been observed that the windows applications which have been developed using the rational purify have stood to be quite reliable throughout. - There is no need to provide rational purify with a direct access to the source code.
- This makes it capable to be used with the libraries belonging to the third–parties. 
- Languages such as the .NET, visual C++ etc are supported by the rational purify. 
- The IBM rational purify is known to integrate well with the Microsoft visual studio. 
- Almost all the software systems belonging to the windows family are supported by the IBM rational purify. 
- The corruption in the memory is identified and the debugging time is reduced significantly. 
- The reliability pertaining to the execution of the software is also reduced. 
- Also, the software systems and applications now make a better utilization of the memory. 
- The IBM rational purify comes with the binary instrumentation technology in which the code is instrumented at the level of the object or the byte level. 
Here, re–linking or the re–compilation of the software system or application is not required for the analyzation of the code. 
- Further, the third–part libraries are also analyzed. 
- With the help of the IDE integration feature, the rational purify can integrate very well with the Microsoft visual studio thus cutting down on the need of switching between different tools having different types of user interfaces. 
- It therefore develops a more productive and cohesive development environment and experience. 
- It helps in the testing as well as the analyzation of the code as it is produced by the programmer. 
- A comprehensive support is provided to most of the programming languages. - The ‘selective instrumentation’ feature of the rational purify enables a user to limit the analyzation of the software to a subset consisting of the modules which together comprise the whole application. 
- This helps greatly in the reduction of the run-time and instrumentation overhead.  
- The reporting to the modules concerned also gets limited. 
- The rational purify can be run from the command line also since it comes with a command line interface. 
- Automated testing frame works are among the rest that are supported by the software system or application. 
- In a way the software developers are empowered in delivering the product with the quality that is expected by the users.


Facebook activity