Differences From Artifact [ebd6df1f69]:
- Executable file
leakcheck/check-malloc-free.sh
— part of check-in
[709b50760d]
at
2010-05-15 00:34:57
on branch trunk
— Added line numbers to debugging output
Added overloaded debugging strdup to check for leaks (user: rkeene, size: 1317) [annotate] [blame] [check-ins using]
- Executable file
leakcheck/leakcheck
— part of check-in
[168d86b82b]
at
2010-05-15 00:48:38
on branch trunk
— Renamed leakcheck tool
Added documentation for leakcheck tool (user: rkeene, size: 1317) [annotate] [blame] [check-ins using]
To Artifact [eea3ae5a09]:
- Executable file leakcheck/leakcheck — part of check-in [9cf62b20d5] at 2010-05-15 00:56:39 on branch trunk — Updated leakcheck to require a filename as parameter (user: rkeene, size: 1572) [annotate] [blame] [check-ins using]
1 2 3 4 | #! /bin/bash TMPFILE="${TMPDIR:-/tmp}/malloc-free-check-$$${RANDOM}${RANDOM}${RANDOM}.tmp" | > > > > > > > > > | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #! /bin/bash LEAKCHECKFILE="$1" TMPFILE="${TMPDIR:-/tmp}/malloc-free-check-$$${RANDOM}${RANDOM}${RANDOM}.tmp" export LEAKCHECKFILE TMPFILE if [ -z "${LEAKCHECKFILE}" ]; then echo "Usage: leakcheck <filename>" >&2 echo " filename Name of file containing debugging output" >&2 exit 1 fi egrep '(MALLOC|FREE|REALLOC)' "${LEAKCHECKFILE}" | sed 's@^.*FREE(\(0x[0-9a-f]*\)).*$@free \1@;s@^.*MALLOC() = @malloc @;s@^.*REALLOC(\(0x[0-9a-f]*\)) = @realloc \1 @' > "${TMPFILE}" cat "${TMPFILE}" | while read op addr newaddr; do case "${op}" in malloc) if [ -z "${alloclist}" ]; then alloclist="${addr}" else |
︙ | ︙ | |||
34 35 36 37 38 39 40 | done | tail -1 | while read leftovers; do for leftover in ${leftovers}; do case "${leftover}" in !*) leftover="$(echo "${leftover}" | cut -c 2-)" echo "Double freed or never allocated ${leftover}:" | | | | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | done | tail -1 | while read leftovers; do for leftover in ${leftovers}; do case "${leftover}" in !*) leftover="$(echo "${leftover}" | cut -c 2-)" echo "Double freed or never allocated ${leftover}:" grep "${leftover}" "${LEAKCHECKFILE}" | sed 's@^@ @' echo '' ;; *) echo "Unfreed memory ${leftover}:" grep "${leftover}" "${LEAKCHECKFILE}" | sed 's@^@ @' echo '' ;; esac done done rm -f "${TMPFILE}" |