and a Valgrind suppressions file to suppress things that either aren't really memory bugs or are bugs in third party libraries which we can't fix.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7526 c06c8d41-db1a-0410-9941-cceddc491573
3AVTUQ5KWUIU33W4G7N3EFTIZDKDHGFUDDUPKWGWBZCZVQT5T5YQC # stashFile in save_game() never gets freed since the process exits# before save_game() returns. Wildcards at start and end of function# names since they get mangled by the C++ compiler and mecheck goes# by the mangled names.## Also, the first "obj:*" is for the new() operator, which gets mangled# in the valgrind library, and might be mangled differently in different# version of valgrind.## NOTE: The number of copies of "obj:*libstdc++*" might need to be changed# for different versions of the C++ library.{save_game_savedir_leakMemcheck:Leakobj:*obj:*libstdc++*obj:*libstdc++*obj:*libstdc++*obj:*libstdc++*obj:*libstdc++*fun:*get_savedir_filename*fun:*save_game*}# The error variable in end() is stuff.cc never gets freed since# exit() is called before end() returns. See above suppression for more# notes{end_error_leakMemcheck:Leakobj:*obj:*libstdc++*obj:*libstdc++*obj:*libstdc++*obj:*libstdc++*obj:*libstdc++*fun:*end*}# The Berkeley DB code sometimes writes the contents of an unitialized buffer# when the save/db/ and save/des/ files are being generated.{berkeley_db_writeMemcheck:Parampwrite64(buf)fun:pwrite64fun:__os_iofun:__memp_pgwritefun:__memp_bhwritefun:__memp_sync_intfun:__memp_fsyncfun:__db_sync}
#!/bin/sh# Convenience caller for the valgrind memory debuggernice -n 7 valgrind --tool=memcheck --leak-check=full --log-file=grind.log \--suppressions=misc/valgrind-suppress.txt ./crawl $*