Release Resolved Community Contributions
0.2.1
5 June 2009
1 bug Patrick Hofer and others notified us of a bug with our Valgrind components on Debian-based systems.
0.2
11 May 2009
60 bugs Ed Swartz assisted in tracking down a UI blocker in the configure.ac editor. Pedro Saraiva pointed out a localization issue with the massif plugin. Uwe Stieber fixed a compilation problem with Eclipse 3.5, fixed the OProfile fragments, and illustrated an incorrect BREE. Jens Seidel and Ben Konrath both filed bugs with good test cases and helped track down problems. Uwe Stieber, Mikael Steen Springer, and Axel Mueller helped Kent Sebastian to improve the privilege escalation code for launching opxml on various Linux distributions. Nick Boldt helped improve our automated build process.

New in Linux Tools 0.2

GNU Autotools Support

Scanner Discovery Support

The plugin now supports grabbing indexer information from the build itself. This allows one to find where various variables and functions are declared. This feature is currently restricted to builds using native gcc as opposed to cross-compilers.

Indexing the printf function

Build Steps

The plugin now allows running a pre-build and/or a post-build step. The step can be a script or a simple command. Simple commands do not support shell command support such as redirection so scripts should be used instead. The steps are currently shown in a separate console window.

Using Autotools build steps

Makefile Targets

The plugin now supports creating and running Make Targets in a non-top-level Makefile. The top-level Makefile targets are still automatically created for you. Running such a new Make Target will run the make command on the specified Makefile directly, starting in that directory.

Makefile Targets

ChangeLog Tools

Filename Support Improvements

Previously files with blanks in their names or parentheses or colons caused the ChangeLog parser to misinterpret the actual file name vs the function name. This prevented the Ctrl-click feature of opening files from working properly. This is now fixed and files with such names will show up with escape characters automatically added. Ctrl-click now works on these files.

ChangeLog entry with spaces in file name

Multiple files per entry

The plugin now allows entries that have multiple files specified in one entry. The multiple file names are separated by commas and can continue on multiple lines. This is useful when there is one change made on a large group of files. Ctrl-click feature works on each file.

ChangeLog entry with multiple file entries

OProfile Profiling

Timer Interrupt Profiling

The plugin will now work with OProfile's timer interrupt-based profiling. This occurs when the host CPU has no debug registers, or can be forced by manually loading the OProfile module with:

# modprobe oprofile timer=1
Timer Interrupt Event In The OProfile View

PPC Support

The plugin now includes a PPC fragment (in addition to the x86 and x86_64 fragment) for use with PPC-based processors.


Improved Test Coverage

Test coverage for the plugins has increased greatly. The tests highlighted several bugs which have since been fixed leading to an overall more stable plugin.

Eclemma Test Coverage

RPM .spec Editor

User documentation

User documentation now exists to ease getting started with the editor.


Rpmlint markers for rpm files

The rpmlint builder has been enhanced to mark rpmlint warnings/errors on .spec files.


Compare support

Structured compare has been added to ease the usage with version control systems.


%global definition support

Support for %global way of defining variables. For details about why %global should be preferred over %define see here.


Valgrind Profiling

Cachegrind Integration

A Cachegrind plugin has been introduced in 0.2. Cachegrind profiles the cache and branch behaviour of your program. A hierarchical breakdown of these statistics is presented in a tree for easy navigation and sorting.

Cachegrind Profiling Results

Test Suite Improvements

The test suite has received the most attention during 0.2 development. Code coverage has greatly improved and many bugs have been discovered and fixed due to this. Tests can also now be run without having Valgrind installed by simulating its output with examples contained in the test plugins. The Java system property eclipse.valgrind.tests.runValgrind=<yes|no> controls this.

Eclemma Code Coverage

Export Wizard

The raw output that Valgrind generates can now be exported to the file system using a new Export Wizard. It is available from the Export command in the File menu and also using a shortcut in the Valgrind view's toolbar.

Export Valgrind Log Files Wizard

Massif Chart Interactivity

A new interactivity feature has been added to Massif's heap allocation charts. As before, single-clicking on a data point in the chart selects that snapshot in the Valgrind view. Now you can double-click on a data point that is a detailed snapshot to open an editor for one of its allocation function calls. This feature considers all of the locations in your project's sources that call an allocation function such as malloc or new. If your project contains functions that serve as wrappers to allocation functions, be sure to add them to the list of allocation functions in the launch configuration. This will ensure you get the most meaningful profiling results.

Selecting A Function Call To Open

Expand/Collapse Beneath

To help manage large amounts of profiling results, all three tools offer a new "Expand/Collapse Beneath Selection" feature in their tree viewers. Accessible from the viewer's context menu, this will expand (or collapse) all items beneath the selected element.

Expand/Collapse Beneath Action