Posted to tcl by de at Fri Apr 11 19:08:50 GMT 2008view pretty

tcl8.4.19rc0, build with --enable-symbols, added -DPURIFY

In all.tcl:
tcltest::singleProcess 1 (because on linux)
(and before the return at the end of the file):
proc exit args {}

If I run:

valgrind --num-callers=60 --leak-check=full --show-reachable=yes ./tcltest ../tests/all.tcl -file cmdAH.test -match 'cmdAH-2.3'

valgrind returns:

==20547== Memcheck, a memory error detector.
==20547== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
==20547== Using LibVEX rev 1658, a library for dynamic binary translation.
==20547== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
==20547== Using valgrind-3.2.1, a dynamic binary instrumentation framework.
==20547== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
==20547== For more details, rerun with: -v
==20547== 
Tests running in interp:  /home/rolf/tcltk/tcl8.4.19/unix/tcltest
Tests located in:  /home/rolf/tcltk/tcl8.4.19/tests
Tests running in:  /home/rolf/tcltk/tcl8.4.19/unix
Temporary files stored in /home/rolf/tcltk/tcl8.4.19/unix
Test files sourced into current interpreter
Running tests that match:  cmdAH-2.3
Skipping test files that match:  l.*.test
Only running test files that match:  cmdAH.test
Tests began at Fre Apr 11 21:03:28 CEST 2008
cmdAH.test

Tests ended at Fre Apr 11 21:03:32 CEST 2008
all.tcl:	Total	359	Passed	1	Skipped	358	Failed	0
Sourced 1 Test Files.
==20547== 
==20547== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 120 from 3)
==20547== malloc/free: in use at exit: 16 bytes in 1 blocks.
==20547== malloc/free: 80,186 allocs, 80,185 frees, 4,445,230 bytes allocated.
==20547== For counts of detected errors, rerun with: -v
==20547== searching for pointers to 1 not-freed blocks.
==20547== checked 114,288 bytes.
==20547== 
==20547== 16 bytes in 1 blocks are still reachable in loss record 1 of 1
==20547==    at 0x401ABC8: realloc (m_replacemalloc/vg_replace_malloc.c:306)
==20547==    by 0x4040774: TclpRealloc (/home/rolf/tcltk/tcl8.4.19/generic/tclAlloc.c:735)
==20547==    by 0x40488C4: Tcl_Realloc (/home/rolf/tcltk/tcl8.4.19/generic/tclCkalloc.c:1085)
==20547==    by 0x406F465: TclSetEnv (/home/rolf/tcltk/tcl8.4.19/generic/tclEnv.c:246)
==20547==    by 0x406F7BE: EnvTraceProc (/home/rolf/tcltk/tcl8.4.19/generic/tclEnv.c:559)
==20547==    by 0x40BB51A: CallVarTraces (/home/rolf/tcltk/tcl8.4.19/generic/tclVar.c:4254)
==20547==    by 0x40B8637: TclPtrSetVar (/home/rolf/tcltk/tcl8.4.19/generic/tclVar.c:1693)
==20547==    by 0x40B81E9: Tcl_ObjSetVar2 (/home/rolf/tcltk/tcl8.4.19/generic/tclVar.c:1523)
==20547==    by 0x40B7F87: Tcl_SetObjCmd (/home/rolf/tcltk/tcl8.4.19/generic/tclVar.c:1288)
==20547==    by 0x40435B8: TclEvalObjvInternal (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:3219)
==20547==    by 0x4044102: Tcl_EvalEx (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:4011)
==20547==    by 0x4044937: Tcl_EvalObjEx (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:4529)
==20547==    by 0x40AAA52: Tcl_UplevelObjCmd (/home/rolf/tcltk/tcl8.4.19/generic/tclProc.c:738)
==20547==    by 0x40435B8: TclEvalObjvInternal (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:3219)
==20547==    by 0x4072140: TclExecuteByteCode (/home/rolf/tcltk/tcl8.4.19/generic/tclExecute.c:1581)
==20547==    by 0x40715AD: TclCompEvalObj (/home/rolf/tcltk/tcl8.4.19/generic/tclExecute.c:1106)
==20547==    by 0x40AB22B: TclObjInterpProc (/home/rolf/tcltk/tcl8.4.19/generic/tclProc.c:1180)
==20547==    by 0x40435B8: TclEvalObjvInternal (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:3219)
==20547==    by 0x40437F6: Tcl_EvalObjv (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:3345)
==20547==    by 0x40447EA: Tcl_EvalObjEx (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:4509)
==20547==    by 0x40AAA52: Tcl_UplevelObjCmd (/home/rolf/tcltk/tcl8.4.19/generic/tclProc.c:738)
==20547==    by 0x40435B8: TclEvalObjvInternal (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:3219)
==20547==    by 0x4072140: TclExecuteByteCode (/home/rolf/tcltk/tcl8.4.19/generic/tclExecute.c:1581)
==20547==    by 0x40715AD: TclCompEvalObj (/home/rolf/tcltk/tcl8.4.19/generic/tclExecute.c:1106)
==20547==    by 0x40AB22B: TclObjInterpProc (/home/rolf/tcltk/tcl8.4.19/generic/tclProc.c:1180)
==20547==    by 0x40435B8: TclEvalObjvInternal (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:3219)
==20547==    by 0x40437F6: Tcl_EvalObjv (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:3345)
==20547==    by 0x40447EA: Tcl_EvalObjEx (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:4509)
==20547==    by 0x40AAA52: Tcl_UplevelObjCmd (/home/rolf/tcltk/tcl8.4.19/generic/tclProc.c:738)
==20547==    by 0x40435B8: TclEvalObjvInternal (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:3219)
==20547==    by 0x4072140: TclExecuteByteCode (/home/rolf/tcltk/tcl8.4.19/generic/tclExecute.c:1581)
==20547==    by 0x40715AD: TclCompEvalObj (/home/rolf/tcltk/tcl8.4.19/generic/tclExecute.c:1106)
==20547==    by 0x40AB22B: TclObjInterpProc (/home/rolf/tcltk/tcl8.4.19/generic/tclProc.c:1180)
==20547==    by 0x409C1B0: InvokeImportedCmd (/home/rolf/tcltk/tcl8.4.19/generic/tclNamesp.c:1508)
==20547==    by 0x40435B8: TclEvalObjvInternal (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:3219)
==20547==    by 0x4044102: Tcl_EvalEx (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:4011)
==20547==    by 0x4091FBD: Tcl_FSEvalFile (/home/rolf/tcltk/tcl8.4.19/generic/tclIOUtil.c:1776)
==20547==    by 0x4053360: Tcl_SourceObjCmd (/home/rolf/tcltk/tcl8.4.19/generic/tclCmdMZ.c:1069)
==20547==    by 0x40435B8: TclEvalObjvInternal (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:3219)
==20547==    by 0x40437F6: Tcl_EvalObjv (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:3345)
==20547==    by 0x40447EA: Tcl_EvalObjEx (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:4509)
==20547==    by 0x40AAA52: Tcl_UplevelObjCmd (/home/rolf/tcltk/tcl8.4.19/generic/tclProc.c:738)
==20547==    by 0x40435B8: TclEvalObjvInternal (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:3219)
==20547==    by 0x4072140: TclExecuteByteCode (/home/rolf/tcltk/tcl8.4.19/generic/tclExecute.c:1581)
==20547==    by 0x40715AD: TclCompEvalObj (/home/rolf/tcltk/tcl8.4.19/generic/tclExecute.c:1106)
==20547==    by 0x40AB22B: TclObjInterpProc (/home/rolf/tcltk/tcl8.4.19/generic/tclProc.c:1180)
==20547==    by 0x40435B8: TclEvalObjvInternal (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:3219)
==20547==    by 0x4044102: Tcl_EvalEx (/home/rolf/tcltk/tcl8.4.19/generic/tclBasic.c:4011)
==20547==    by 0x4091FBD: Tcl_FSEvalFile (/home/rolf/tcltk/tcl8.4.19/generic/tclIOUtil.c:1776)
==20547==    by 0x409A00A: Tcl_Main (/home/rolf/tcltk/tcl8.4.19/generic/tclMain.c:295)
==20547== 
==20547== LEAK SUMMARY:
==20547==    definitely lost: 0 bytes in 0 blocks.
==20547==      possibly lost: 0 bytes in 0 blocks.
==20547==    still reachable: 16 bytes in 1 blocks.
==20547==         suppressed: 0 bytes in 0 blocks.