Gleipnir

Gleipnir is a memory profiling tool based on the Valgrind binary instrumentation framework. It maps instruction load and store operations to program's internal data structures. The purpose is to use the tracing data to enable cache simulation with respect to program's internal data structures.
The memory layout under Gleipnir is skewed due to the intrusive nature of Valgrind. The name Gleipnir comes from the Norse mythology. Gleipnir is a deceptively strong ribbon which was used to bind a mythical wolf named Fenrir. The idea behind Gleipnir is that, while simplistic, it can be used to bind the memory hogs in applications.

 contact: tjanjusic [at] unt [dot] edu 

Instaling Gleipnir

The current version was tested and working on Linux 2.6.35-30 Ubuntu 10.10 Maverick Meerkat (should work on later versions as well).
Requirements: gcc-4.4.5 (should work with earlier versions up to 3.x.x), autotools 5.10, subversion

Get the latest version of Valgrind:

 $ svn co svn://svn.valgrind.org/valgrind/trunk valgrind 

Change into the valgrind directory

 $ cd valgrind 

Check out the latest version of Gleipnir:
username: guest, password: guest2011

 $ svn co http://csrl.unt.edu/svn/tools/gleipnir gleipnir --username=guest 

Set the include path in "gleipnir/gleipnir.h" to the proper location to "$PWD/valgrind/include/valgrind.h"

Move gleipnir/debuginfo.c into $valgrind_source/coregrind/m_debuginfo

 $ mv gleipnir/debuginfo.c ./coregrind/m_debuginfo/ 

Move gleipnir/pub_tool_debuginfo.h into $valgrind_source/include/

 $ mv gleipnir/pub_tool_debuginfo.h ./include/ 

Add Gleipnir as a tool in configure.in and Makefile.am in $valgrind_source/

Change the path in gleipnir.h to the appropriate valgrind_source/include/valgrind.h

Proceed with the normal Valgrind install

 autogen.sh; configure --prefix=<install dir>; make; make install 

Contact

For general questions please contact: tjanjusic [at] unt [dot] edu

Understanding Gleipnir

Follow this link for an explanation on how to run Gleipnir.