masses/plugins/Dumpmem.pm (24 lines of code) (raw):

# Dumpmem - dump SpamAssassin memory structures to disk after each message # # use as follows: # # MEMDEBUG=1 ./mass-check --cf='loadplugin Dumpmem plugins/Dumpmem.pm' \ # [normal mass-check arguments] # # e.g. # # MEMDEBUG=1 ./mass-check --cf='loadplugin Dumpmem plugins/Dumpmem.pm' \ # --net -n -o spam:dir:/local/cor/recent/spam/high.2007010* package Dumpmem; use strict; use Mail::SpamAssassin; use Mail::SpamAssassin::Plugin; our @ISA = qw(Mail::SpamAssassin::Plugin); use Mail::SpamAssassin::Util::MemoryDump; sub new { my ($class, $mailsa) = @_; $class = ref($class) || $class; my $self = $class->SUPER::new($mailsa); warn "Dumpmem plugin loaded"; if (!$ENV{'MEMDEBUG'}) { warn "you forgot to set MEMDEBUG=1! are you sure you want that?"; } bless ($self, $class); return $self; } sub per_msg_finish { my ($self, $opts) = @_; Mail::SpamAssassin::Util::MemoryDump::MEMDEBUG(); Mail::SpamAssassin::Util::MemoryDump::MEMDEBUG_dump_obj( $opts->{permsgstatus}->{main}); } 1;