Commit 0916bf26 authored by Jeremy Bicha's avatar Jeremy Bicha

New upstream version 0.9.8

parents 02f47ed6 5175703a
Jeffrey Stedfast <>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
## Process this file with automake to produce
SUBDIRS = src po
EXTRA_DIST = \ \ \
alleyoop.gladep \ \ \
intltool-merge \
intltool-update \
if test -d $(srcdir)/pixmaps; then \
$(mkinstalldirs) $(DESTDIR)$(datadir)/pixmaps/$(PACKAGE); \
for pixmap in $(srcdir)/pixmaps/*; do \
if test -f $$pixmap; then \
$(INSTALL_DATA) $$pixmap $(DESTDIR)$(datadir)/pixmaps/$(PACKAGE); \
fi \
done \
if test -d pixmaps; then \
mkdir $(distdir)/pixmaps; \
for pixmap in pixmaps/*; do \
if test -f $$pixmap; then \
cp -p $$pixmap $(distdir)/pixmaps; \
fi \
done \
This diff is collapsed.
Alleyoop 0.9.5, 2009-03-07
New Features:
- Added support for the --ignore-ranges, --malloc-fill, and
--free-fill Memcheck options.
- Added support for the --happens-before, --trace-addr, and
--trace-level Helgrind options.
Bugs Fixed:
- Don't try to use --avoid-strlen-errors which is no longer
supported by Valgrind.
- Fixed -I, -R and --tool command-line options to work as expected.
Alleyoop 0.9.4, 2009-02-08
Bugs Fixed:
- Got rid of custom debugging symbol lookup code which was
unnecessary and broke the build on recent Linux distributions like
openSUSE 11.1
- Fixed some bugs in the Valgrind error parser.
Alleyoop 0.9.3, 2006-08-14
Bugs Fixed:
- Replaced popt option parsing code with custom option parsing code
to get around memory corruption caused by popt.
Alleyoop 0.9.2, 2006-07-28
Bugs Fixed:
- Select the row being right-clicked before spawning the popup menu
so that menu items are properly (de)sensitised.
- Chaneged the default schema value for --leak-check to "no" instead
of "false" which doesn't work.
- Fixed to properly parse the Valgrind 3.1.0 timestamp format.
Alleyoop 0.9.1, 2006-06-12
Bugs Fixed:
- Work with Valgrind 3.1.0. Had to remove support for
"Sloppy Malloc" which is a feature that has been removed
in Valgrind 3.1.0. Also had to switch to using --log-fd
rather than --logfile-fd.
Alleyoop 0.9.0, 2005-05-05
New Features:
- Added support for Valgrind's new time-stamp feature
- Added support for suppression matching against leak reports
Bugs Fixed:
- Handle calling Valgrind 2.4.0 (uses slightly different
command-line options)
- Fixed a memory leak in the code that forked off the program being
Alleyoop 0.8.3, 2005-02-08
Bugs Fixed:
- Handle "warning: ..." messages from valgrind
- Use bfd_get_section_size() instead of
bfd_get_section_size_before_reloc() if the system bfd doesn't have it.
Updated Translations:
- en_CA (Adam Weinberger)
- gu (Ankit Patel)
- nb (Kjartan Maraas)
- uk (Yuriy Syrota)
Alleyoop 0.8.2, 2004-04-03
New Features
- Added support for the Helgrind skin
- Added a checkbox for "Track open file descriptors" which is a new
feature in Valgrind 2.1.x
- Only pass command-line arguments to valgrind if the value is not
the default value (allows users to use older valgrinds which don't
have some of the new features as long as they leave the default value
for that setting alone).
Updated Translations:
- en_GB (Gareth Owen)
- ga (Alastair McKinstry)
- hr (Robert Sedak)
- no (Kjartan Maraas)
- zh_CN (Wang Jian)
Alleyoop 0.8.1, 2004-02-09
Bugs Fixed:
- "Suppress error" now handles Addr[1,2,4,8] and Free errors.
- Fixed warning spewage about appending NULL to a GString.
- Use fctnl with the FD_CLOEXEC flag instead of closing all fds in
the child process before exec.
- Don't pass --suppressions=<filename> if <filename> doesn't exist.
Updated Translations:
- az (Metin Amiroff)
- cs (Miloslav Trmac)
- hr (Robert Sedak)
- mn (Sanlig Badral)
- sk (Marcel Telka)
- sq (Laurent Dhima)
Alleyoop 0.8.0, 2003-10-21
Bugs Fixed:
- Fixed a small memory leak when freeing suppression rules.
New Features:
- After adding a new suppression rule, immediately remove all
matching errors from the view. Suppress further errors matching
the new rule as well.
- Default the AddrCheck/MemCheck checkboxes to 'on' in the new-rule
Updated Translations:
- az (Metin Amiroff)
- ca (Jordi Mallach)
- cs (Miloslav Trmac)
- de (Christian Neumair)
- el (Kostas Papadimas)
- es (Pablo Gonzalo del Campo)
- fr (Christophe Merlet)
- it (Alessio Frusciante)
- ja (Takeshi AIHANA)
- ms (Hasbullah Bin Pit)
- nl (Vincent van Adrighem)
- pl (Artur Flinta)
- pt (Duarte Loreto)
- ru (Valek Filippov)
- sr (Danilo Šegan)
- sv (Christian Rose)
Alleyoop 0.7.3, 2003-06-01
Bugs Fixed:
- Handle Valgrind error spewage from multiple pid's concurrently.
- Fixed some warning spewage.
- Plugged a memory leak by unreffing the GnomeProgram object after
exiting the main loop.
Alleyoop 0.7.2, 2003-05-21
Bugs Fixed:
- Don't leak the symtab on exit.
- Don't leak references to the gconf client.
- Fixed a bug in the suppression list dialog reguarding the deletion
of rules.
- Suppress "IGNORED call to:" errors reported from Valgrind.
- Don't allow a user to save a suppresion rule without a name.
- Handle Valgrind 1.9.6's thread-id output.
New Features:
- Ability to specify which skins to suppress an error in.
- Redirect the child process's stdin, stdout, and stderr to
alleyoop's stdin, stdout, and stderr respectively. This
allows one to debug console applications more easily.
- Added a new right-click context menu item to launch the user's
custom editor.
Updated Translations:
- ca (Jordi Mallach)
- cs (Miloslav Trmac)
- ja (Takeshi AIHANA)
- no (Kjartan Maraas)
- pt (Duarte Loreto)
- pt_BR (Evandro Fernandes Giovanini)
- sr (Danilo Šegan)
- sr@Latn (Danilo Šegan)
- sv (Christian Rose)
Alleyoop 0.7.1, 2003-04-26
Bugs Fixed:
- Fixed an ABW when creating the prefs notebook widget.
New Features:
- Added support for launching the user's custom editor command-line
when double-clicking on a stack-frame report. Editor command-line
variables include ${lineno} and ${filename}.
- Added a new prefs page for Helgrind options (although as of yet
neither Helgrind nor Cachegrind skins are supported).
- Wrote some basic documentation contained in the README file.
Updated Translations:
- cs (Miloslav Trmac)
- ja (Takeshi AIHANA)
- pt (Duarte Loreto)
- sv (Christian Rose)
Alleyoop 0.7.0, 2003-04-22
Bugs Fixed:
- Build on Linux distributions which do not have a libpopt that
- When the user opens the suppressions list, load the file contents
instead of doing nothing. :-)
New Features:
- Added the ability to choose which Valgrind 'skin' to use
(currently only memcheck and addrcheck are fully supported). This
preference can be chosen either as a command-line argument
(--skin=[memcheck,addrcheck]) or by using the "Skins" menu.
- Added support for the newer Valgrind (1.9.5) suppressions file
format (the parser remains backwards compatable with the older 1.0.x
format as well).
Alleyoop 0.6.5, 2003-04-20
Bugs Fixed:
- Added NULL-protection for resolved symbol filenames. Fixes a
segfault when objects don't contain the source filenames in their
debugging symbols.
New Features:
- Implemented Cut/Copy/Paste support, although Paste is a no-op.
Alleyoop 0.6.4, 2003-04-19
New Features:
- Users may now configure the number of lines above and below the
target source-file line that contained the error.
- New Search Bar that actually works. Users can now filter out
error messages that don't match a regex that they provide using
the search bar. Clicking the "Clear" button will show all errors.
Updated Translations:
- ja (Takeshi AIHANA)
Alleyoop 0.6.3, 2003-04-16
New Features:
- New command-line arguments (-R, --recursive) which add the source
path value and all subdirectories.
- Added a Edit/Clear menu item to clear the tree-view.
This README is meant to address basic usage of Alleyoop until I get
around to writing some real documentation.
Basic Usage:
To run Alleyoop, execute the following command at a shell prompt:
This will start the main user interface. At this point you will likely
wish to click on the "Run" toolbar button (or use the shortcut keys:
Control+R) which will prompt you to enter the name of a program to
debug and any command-line arguments you wish to pass. Beware that
environment variables in the command-line entered in the prompt will
NOT be expanded.
An easier way to do this (in my opinion, anyway) is to specify the
program on the command-line:
alleyoop ./a.out -v --arg1=foo
The example above will initialise Alleyoop to run the command:
./a.out -v --arg1=foo
when you click on the Run toolbar button.
Command-line Arguments and Environment Variables:
Because the debugging symbols in the program (and/or shared libraries
that the program depends on) may not contain the full path of the
source code for said object, you might need to use one of the
following command-line arguments:
-I, --include
These arguments allow you to specify a single source path for Alleyoop
to scan when you request it to load a source preview or launch an
editor. You may use these as many times as you like.
-R, --recursive
These arguments, like -I or --include, allow you to specify a source
path to Alleyoop. The difference is that -R and --recursive will also
add all subdirectories of the path specified to Alleyoop's internal
list of source paths.
Also for your convenience, there exists an environment variable,
ALLEYOOP_INCLUDE_PATH, that Alleyoop will also use for this
purpose. Like the PATH and LD_LIBRARY_PATH environment variables,
directory names are delimited using the colon (:) character.
Note: paths passed to Alleyoop via the command-line arguments take
precedence over any specified in the environment variable under the
assumption that the user will have likely set ALLEYOOP_INCLUDE_PATH
for all the core libraries that the the programs he/she is interested
in debugging while using the command-line arguments for source paths
limited to the program itself.
Other command-line arguments for Alleyoop include:
This command-line argument allows you to specify which Valgrind tool
you want to use by default for this particular "Alleyoop Debug
Session". An example usage might be:
alleyoop --tool=addrcheck
-h, --help
Gee, I wonder ;-)
-v, --version
Prints the version and then exits.
Using Alleyoop:
Okay, now that you've been introduced to starting Alleyoop and its
various command-line arguments, lets take a look at how to actually
use Alleyoop.
The first thing you are likely to notice is a big white rectangular
area right below the toolbar/searchbar. This is the most important
user interface element because this is where the errors will be
Once you hit that Run button in the toolbar, messages will start to
appear. You should immediately notice that each line of text will have
a side-ways triangle next to it. When you click on one of these
triangles, the error message will expand to present you with more
information. Generally, this information will consist of at least 1
call-chain[1]. When multiple call-chains appear, they will be
separated by a singleton line giving further information about the
error. Usually, call chains after the first will be used to provide
you with clues as to where memory involved in the error was allocated
or freed.
Each line of a call-chain will normally have a side-ways triangle next
to it as well. Expanding a call-chain tree node will, presuming
Alleyoop can find the source file, load a preview of the source code
involved in the error (you can configure the numbr of lines of context
you wish to see in the preview, by default the number of context lines
are 2 lines above and below the line with the error).
There are several operations that you can do with a call-chain node:
1) Double-clicking a call-chain node with the left mouse button will
launch your preferred editor on the source file containing the error
(using the command-line you configured in the Preferences dialog).
2) Right-clicking a call-chain node will popup a context menu allowing
you to:
a) Cut/Copy: Selecting either of these items will copy the current
error condition into your clipboard buffer in the format used by
b) Suppress[2]: This item will open a suppression editor dialog
pre-filled with the currently selected call-chain
information. The suppression editor will also default the
Suppression-Type and System-call values if it can.
c) Edit in ...: These items all launch the editor specified in the
menu name on the source file containing the error (similar to
double-clicking a call-chain node as explained above).
Note: The GNU/Emacs item is special - it first tries to use
`emacsclient -n +${lineno} "${filename}"`. Failing that, it
falls back to launching a new emacs editor.
Using the Search Bar:
Like suppressions, the Search Bar (located just below the toolbar) can
be a valuable tool in limiting the errors you see to those that you
care about seeing.
Unlike suppressions, however, they:
1) do not act like as a blacklist (instead, they act more as a
2) are not permanantly applied - clearing the search will restore the
full error log.
You are currently able to search using the following criteria:
Error contains: This option can be used to search for substrings in
the error summary (toplevel node for each error).
Function contains: Search for errors with a particular function in the
Object contains: Search for errors with a particular shared library
(or other object) in a call-chain.
Source filename contains: Search for errors where a function in the
call-chain is in a particular source file.
Note: Regular Expressions can be used when searching.
1. A call-chain is the first few parent stack frames leading up to the
2. A suppression is a way of ignoring specific errors produced by your
program. For further information, see Valgrind's documentation.
* When searching, highlight the part of the error that matches the search
* Add tooltips for config options and other places
* Might want to consider using the XML format from valgrind
This diff is collapsed.
This diff is collapsed.
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-project SYSTEM "">
# Run this to generate all the initial makefiles, etc.
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
(test -f $srcdir/ \
&& test -f $srcdir/ChangeLog \
&& test -d $srcdir/src) || {
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
echo " top-level $PKG_NAME directory"
exit 1
which || {
echo "You need to install gnome-common from the GNOME CVS"
exit 1
This diff is collapsed.
/* Generated from by autoheader. */
/* Path to the GNU/Emacs editor client. */
/* Path to the GNU/Emacs editor. */
/* always defined to indicate that i18n is enabled */
/* Enable the use of vgstrpool.c (an attempt at keeping memory usage down). */
/* Package name for gettext */
/* Path to the GNOME vim editor. */
#undef GVIM_PATH
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
/* Define to 1 if you have the `dcgettext' function. */
/* Define if the GNU gettext() function is already present or preinstalled. */
/* Define to 1 if you have the <inttypes.h> header file. */
/* Define if your <locale.h> file defines LC_MESSAGES. */
/* Define to 1 if you have the <locale.h> header file. */
/* Define to 1 if you have the <memory.h> header file. */
/* Define to 1 if you have the <stdint.h> header file. */
/* Define to 1 if you have the <stdlib.h> header file. */
/* Define to 1 if you have the <strings.h> header file. */
/* Define to 1 if you have the <string.h> header file. */
/* Define to 1 if you have the <sys/stat.h> header file. */
/* Define to 1 if you have the <sys/types.h> header file. */
/* Define to 1 if you have the <unistd.h> header file. */
/* Path to a ldd program */
#undef LDD_PATH
/* Name of package */
#undef PACKAGE
/* Define to the address where bug reports for this package should be sent. */
/* Define to the full name of this package. */
/* Define to the full name and version of this package. */
/* Define to the one symbol short name of this package. */
/* Define to the home page for this package. */
/* Define to the version of this package. */
/* Define to 1 if you have the ANSI C header files. */
/* Path to a valgrind program */
/* Version number of package */
#undef VERSION
/* Path to the XEmacs editor. */
This diff is collapsed.
This diff is collapsed.
dnl Process this file with autoconf to produce a configure script.
AM_INIT_AUTOMAKE(alleyoop, 0.9.8)