perl-Devel-Plumber - memory leak finder for C programs

Property Value
Distribution ALT Linux Sisyphus
Repository Autoimports i586
Package filename perl-Devel-Plumber-0.3.4-alt4.1.i586.rpm
Package name perl-Devel-Plumber
Package version 0.3.4
Package release alt4.1
Package architecture i586
Package type rpm
Category Development/Perl
Homepage -
License -
Maintainer -
Download size 19.28 KB
Installed size 19.28 KB
Devel::Plumber is a memory leak finder for C programs, implemented in
Perl.  It uses GDB to walk internal glibc heap structures, so it can
work on either a live process or a core file.
Devel::Plumber treats the C heap of the program under test as a
collection of non-overlapping blocks, and classifies them into
one of four states.
=item Free
The block is not allocated.
=item Leaked
The block is allocated but there are no pointers to any address in it,
so the program cannot reach it.
=item Maybe Leaked
The block is allocated and there are pointers to addresses within it,
but no pointers to the start of it.  The program might be able to reach
it in some unobvious way via those pointers (e.g. using pointer
arithmetic), or the pointers may be dangling pointers to earlier
generations of blocks.  Devel::Plumber cannot tell the difference
between these possibilities.
=item Reached
The block is allocated and there are pointers to the start of the block.
Devel::Plumber proceeds in two main phases.  In the first phase, the
glibc internal heap structures are walked to discover all the blocks.
Unallocated blocks are set to Free state at this time and allocated
blocks are initially set to Leaked state.  In the second phase,
reachable blocks are marked.  All the *.data* and *.bss* sections in
the program (and all loaded shared libraries) are scanned for pointers.
If a pointer points to the start of a block, the block is set to Reached
state; if it points into a Leaked block, the block is set to Maybe
Leaked state.  In either case, the block's contents are also scanned for
pointers.  After the second phase is complete, any blocks still in
Leaked state are definitely leaked.


Package Version Architecture Repository
perl-Devel-Plumber-0.3.4-alt4.1.x86_64.rpm 0.3.4 x86_64 Autoimports
perl-Devel-Plumber - - -


Name Value
/usr/share/perl5 -
perl(Devel/ -
perl(IO/ -
perl(Tree/ -
perl( -
rpmlib(PayloadIsLzma) -


Name Value
perl(Devel/ = 0.003.004
perl-Devel-Plumber = 0.3.4-alt4.1


Type URL
Binary Package perl-Devel-Plumber-0.3.4-alt4.1.i586.rpm
Source Package perl-Devel-Plumber-0.3.4-alt4.1.src.rpm

Install Howto

  1. Add the following line to /etc/apt/sources.list:
    rpm [Sisyphus] i586 autoimports
    rpm [Sisyphus] noarch autoimports
  2. Update the package index:
    # sudo apt-get update
  3. Install perl-Devel-Plumber rpm package:
    # sudo apt-get install perl-Devel-Plumber



See Also

Package Description
perl-Devel-Plumber-scripts-0.3.4-alt4.1.i586.rpm Devel-Plumber scripts
perl-Devel-Pointer-1.00-alt4.1.i586.rpm Fiddle around with pointers
perl-Devel-Pragma-1.1.0-alt3_9.i586.rpm Helper functions for developers of lexical pragmas
perl-Devel-Profit-0.34-alt4.1.i586.rpm A Perl profiler
perl-Devel-Profit-scripts-0.34-alt4.1.i586.rpm Devel-Profit scripts
perl-Devel-PtrTable-0.03-alt4.1.i586.rpm Interface to perl's old-new pointer mapping for cloning
perl-Devel-QuickCover-0.900010-alt2.1.i586.rpm Quick & dirty code coverage for Perl
perl-Devel-QuickCover-scripts-0.900010-alt2.1.i586.rpm Devel-QuickCover scripts
perl-Devel-SawAmpersand-0.33-alt4.1.i586.rpm parse reports to from various sources
perl-Devel-SlowBless-0.06-alt4.1.i586.rpm Perl extension for identifying code that causes bless
perl-Devel-Unstate-0.01-alt3.1.i586.rpm Disable 'state' keyword statelessness
perl-Devel-Unwind-0.013-alt3.1.i586.rpm What if you could die to a labeled eval?
perl-Devel-bt-0.06-alt4.1.i586.rpm Automatic gdb backtraces on errors
perl-Devel-cst-0.010-alt3.1.i586.rpm C stacktraces for GNU systems
perl-Device-Arduino-LCD-1.02-alt4.1.i586.rpm Perl Interface to the PerLCD Arduino Sketch