Stopping it is a bit annoying. You have to kill gdb and then kill -CONT the program if it is in T state. With a suitable script for analyzing the malloc log, you could then see things like places in the code that allocated a lot of new memory during the time you were watching. + +{section: How to look at static (compile time) allocations for a daemon} + +This simple script will print out size of text, data & bss segments of the shadow and each of the libraries that it loads. + +{code} +#!/bin/sh +# print size of Text, Data, & BSS for the condor_shadow and each .so it needs. +shadow=`condor_config_val shadow` +size "$shadow" +ldd "$shadow" | awk '{print $3}' | while read L; do size $L 2>/dev/null | sed '1 d'; done +{endcode} + +This simple script will print out the names of all of data symbols in the condor_utils lib sorted by size. (Note that the 7.6.x shadow and the 7.9.5 static shadow don't link with condor_utils, so this script doesn't work with them). + +{code} +#!/bin/sh +shadow=`condor_config_val shadow` +utillib=`ldd "$shadow" | grep condor_util | awk '{print $3}'` +echo $shadow +echo $utillib +nm -BStd --size-sort "$utillib" | egrep ' [BbDd] ' +{endcode}