Massif Visualizer
Development
Score 66%
Description:

Massif Visualizer is a tool that - *who would guess that* - visualizes massif data. You run your application in Valgrind with `--tool=massif` and the open the generated `massif.out.%pid` in this application. You can also compress the log with Gzip or Bzip2 and open it transparently with the visualizer.

The application consists of three parts:

# The Overview Chart

The first thing you will notice is a nice chart that displays the same as e.g. `ms_print` does in Ascii-Art: total memory consumption over time.

What Massif-Visualizer goes further is by additionally showing the top ten most cost-intensive locations in your code as a stacked graph below the total cost. The graph also reacts on user-interaction.

This view you can use for

- checking whether your application has memory leaks
- finding too expensive peaks
- finding locations that significantly contribute to the overall memory consumption of your application

# The Snapshot Data Tree

Directly next to the above chart, you will see a tree with all of the massif data. The tree items are colored depending on their cost, with red opaque being the most interesting (peak) elements. Green/transparent items are negligible and do not add significant cost to your application.

You can also search the tree and when you select something in it, the snapshot gets highlighted in the overview chart and the call graph gets updated.

# The Call Graph for Detailed Snapshots

Massif generates a few detailed snapshots that essentially make up the tree. If you want to get an overview in a more comfortable way than the simple tree view, switch over to the detailed snapshot tab and see
the tree visualized as a call graph. Zoom in, zoom out, use the birds eye view and see what contributes to a given snapshot. Note that function calls with the same memory cost are grouped to easily find the interesting parts.
Last changelog:

7 years ago

11/17/2014: Release of version 0.4.0
- multiple enhancements to the GUI
- many performance improvements

11/20/2011: Release of version 03
- translations into 18 languages
- hiding functions via context menu
- basic custom allocator support
- configurable precision of memory size display
- various optimizations and bug fixes
08/08/2011: add Mac OS X links
11/06/2010: add OBS build service
11/05/2010: Release of version 0.2
- build fixes make it possible to run on Mac OS X
- KGraphViewer is now optional
- prepare for move to KDE extragear
11/02/2010: Release of version 0.1
03/30/2010: First announce on KDE-Apps

rafalrr

4 years ago

Hi.
Massif-visualizer prints errors at start:
Quote:massif-visualizer(2234)/kdeui (KAction) KSelectAction::setCurrentAction: Action does not have the correct properties to be current: "Dot"
QObject::connect: Cannot connect DotGraphView::removeEdge(const QString&) to (null)::removeEdge(const QString&)
QObject::connect: Cannot connect DotGraphView::removeNodeNamed(const QString&) to (null)::removeNodeNamed(const QString&)
QObject::connect: Cannot connect DotGraphView::removeElement(const QString&) to (null)::removeElement(const QString&)
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No such file or directory
QFileSystemWatcher: failed to add paths: /home/penguin/.config/ibus/bus
massif-visualizer(2234)/kdeui (kdelibs): Attempt to use QAction "toggleDataTree" with KXMLGUIFactory!
massif-visualizer(2234)/kdeui (kdelibs): Attempt to use QAction "toggleAllocators" with KXMLGUIFactory!


Application works correctly, but when I want to show tab "Detailed Snapshot Analysis", I see nothing - it is blank.
Is it known issue? What can I do for correct this?

Br,
Rafał

Report

FredMo

5 years ago

Hello,

Thanks for massif-visualizer

Is it possible to have a vertical resizing, when the total cost is disable and when we used the option "shadow this function"

I am "shadowing" many function and rising the "Diagram Nb", but the vertical ladder is not updated :(

Can you help me ?

Thanks
Frédéric

Report

gohanz

5 years ago

I have a compilation error on my Slackware 13.37.
This is the console output.


[ 75%] Building CXX object massifdata/CMakeFiles/mv-massifdata.dir/parserprivate.o
Linking CXX shared library ../lib/libmv-massifdata.so
CMakeFiles/mv-massifdata.dir/parserprivate.o: In function `Massif::ParserPrivate::parseheapTreeLeafInternal(QByteArray const&, int)':
parserprivate.cpp:(.text+0x10b6): undefined reference to `Massif::functionInLabel(QString const&)'
collect2: ld returned 1 exit status
make[2]: *** [lib/libmv-massifdata.so] Errore 1
make[1]: *** [massifdata/CMakeFiles/mv-massifdata.dir/all] Errore 2
make: *** [all] Errore 2


Report

C

milianw

5 years ago

What linker and linker flags do you use? Please show the full line, e.g. by invoking:

make -j1 VERBOSE=1

then paste the (long) last line that triggers the linking.

Report

gohanz

5 years ago

After some tests, i find that the the problem is related to this cmake option line on my build script
-DBUILD_SHARED_LIBS:BOOL=ON
removed this line Massif Visualizer build without problem. Thanks for help!

Report

bpm

6 years ago

Hi,

how can the following error be resolved:

-- Could NOT find KGRAPHVIEWER (missing: KGRAPHVIEWER_INCLUDE_DIRECTORIES)
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
KGRAPHVIEWER_INCLUDE_DIRECTORIES
used as include directory in directory /home/brendan/bin/massif-visualizer-0.1/app

-- Configuring incomplete, errors occurred!


Thanks.

Report

bpm

6 years ago

note that I installed the kgraphviewer per the install guide.


kgraphviewer 2.1: http://kde-apps.org/content/show.php/KGraphViewer+and+KGrap\
hEditor?content=23999


Report

C

milianw

6 years ago

where did you install kgraphviewer to?

please locate kgraphviewer/kgraphviewer_interface.h

The cmake file looks in /usr/local/include and /usr/include.

What about the libraries, where is libkgraphviewer.so located for you?

Report

bpm

6 years ago

hello

I simply used the kgraphviewer-2.1-29.1.fc13.i386.rpm package.

I installed it by running
>rpm -iv kgraphviewer-2.1-29.1.fc13.i386.rpm

as root.

Am I missing some other part of the install?

I did not find the header file in /usr/include or /usr/local
Are the headers and lib part of the rpm? or some other package?

thanks.

Report

C

milianw

6 years ago

they should be part of it, if not that is a bug which has to be fixed. anyhow, take this to kgraphviewer. I'll ask Gael on insight.

Report

bpm

6 years ago

can I work around it in the meanwhile? any suggestions? thanks.

Report

C

milianw

6 years ago

download this file:

https://projects.kde.org/projects/extragear/graphics/kgraphviewer/repository/revisions/master/entry/src/part/kgraphviewer_interface.h

and put it into /usr/local/include/kgraphviewer/

Report

bpm

6 years ago


kgraphviewer and kgrapheditor are in /usr/bin

libkgraphviewer.so is in /usr/lib

so they appear to be in place.

Report

bpm

6 years ago

however I cannot find the interface header file.

Report

bpm

6 years ago

got it working. thanks very much for your help. looks like an excellent tool.

Report

annulen

7 years ago

Hi! Do you know about project "valgrind-gui"? It's hosted on SourceForge and is written in Qt4. It would be great to integrate your project with it. Of course, it could be done in "unix-way" manner (just call your program and feed it output of massif), but integration into one program can be better option.

Report

annulen

7 years ago

Hi! Do you know about project "valgrind-gui"? It's hosted on SourceForge and is written in Qt4. It would be great to integrate your project with it. Of course, it could be done in "unix-way" manner (just call your program and feed it output of massif), but integration into one program can be better option.

Report

C

milianw

7 years ago

I think the approaches are different and Massif-Visualizer has KDE dependencies that I won't remove (the KGraphViewer one alone justifies the need for it).

So I think this is a no-go for me.

Bye

Report

wash

7 years ago

Great app, one of the best Valgrind GUI front-ends.

Report

7 years ago

11/17/2014: Release of version 0.4.0
- multiple enhancements to the GUI
- many performance improvements

11/20/2011: Release of version 03
- translations into 18 languages
- hiding functions via context menu
- basic custom allocator support
- configurable precision of memory size display
- various optimizations and bug fixes
08/08/2011: add Mac OS X links
11/06/2010: add OBS build service
11/05/2010: Release of version 0.2
- build fixes make it possible to run on Mac OS X
- KGraphViewer is now optional
- prepare for move to KDE extragear
11/02/2010: Release of version 0.1
03/30/2010: First announce on KDE-Apps

File (click to download) Version Description Filetype Packagetype License Downloads Date Filesize OCS-Install DL
Details
version
0.4
updated Dec 12 2014
added Mar 30 2010
downloads today
0
page views today 15