Tcl Source Code

Artifact [230aa145ca]
Login

Artifact 230aa145ca5e9a326efdb88468129861e08b49cc:

Attachment "kevinleaks4.txt" to ticket [1705778fff] added by kennykb 2007-04-26 06:03:27.
Kevin's leak catalog in 8.5a6, 2007-04-25, 19:00 UTC

The following leaks all appear closed: [K01] [K03] [K04] [K05] [K07]
[K09] [K13] [K14] [K22] [K23] [K27]

[K19] is intermittent
[K24] is a duplicate of K17?
[K25] appears to duplicate K20
[K26] appears to be related to K02

The following leaks occurred in subprocesses from exec.test:

[K02] seems to appear with every [source] command

==4302== 151 (24 direct, 127 indirect) bytes in 1 blocks are definitely lost in loss record 1,939 of 3,022
==4302==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4302==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4302==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4302==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4302==    by 0x40DC660: TclFSNormalizeAbsolutePath (tclPathObj.c:235)
==4302==    by 0x40DEE39: Tcl_FSGetNormalizedPath (tclPathObj.c:1920)
==4302==    by 0x40C4751: Tcl_FSEvalFileEx (tclIOUtil.c:1757)
==4302==    by 0x405969D: Tcl_SourceObjCmd (tclCmdMZ.c:953)
==4302==    by 0x4091D30: TclExecuteByteCode (tclExecute.c:1834)
==4302==    by 0x408F913: TclCompEvalObj (tclExecute.c:996)

[K11] appears in a great many test runs

==4302== 168 (24 direct, 144 indirect) bytes in 1 blocks are definitely lost in loss record 2,299 of 3,022
==4302==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4302==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4302==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4302==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4302==    by 0x40DDA34: Tcl_FSJoinPath (tclPathObj.c:962)
==4302==    by 0x40AA078: Tcl_FSJoinToPath (tclFileName.c:793)
==4302==    by 0x404DFBD: Tcl_FileObjCmd (tclCmdAH.c:1005)
==4302==    by 0x4091D30: TclExecuteByteCode (tclExecute.c:1834)
==4302==    by 0x408F913: TclCompEvalObj (tclExecute.c:996)
==4302==    by 0x40E75BA: TclObjInterpProcCore (tclProc.c:1517)

The following leaks occurred in subprocesses launched in tcltest.test:

[K15] is something that Donal may have fixed.

==4593== 24 bytes in 1 blocks are definitely lost in loss record 1,181 of 4,220
==4593==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4593==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4593==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4593==    by 0x40E7199: TclObjInterpProcCore (tclProc.c:1439)
==4593==    by 0x40E6E55: ObjInterpProcEx (tclProc.c:1269)
==4593==    by 0x40E6CD1: TclObjInterpProc (tclProc.c:1199)
==4593==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)
==4593==    by 0x4044426: Tcl_EvalObjv (tclBasic.c:3737)
==4593==    by 0x40D48D1: NsEnsembleImplementationCmd (tclNamesp.c:6243)
==4593==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)

[K06] may be an intermittent, was not observed yesterday (could have
been an accident with the editor)

==4593== 136 (24 direct, 112 indirect) bytes in 1 blocks are definitely lost in loss record 1,860 of 4,220
==4593==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4593==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4593==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4593==    by 0x40D6FA1: Tcl_DuplicateObj (tclObj.c:1012)
==4593==    by 0x8056BA6: TestReportInFilesystem (tclTest.c:6398)
==4593==    by 0x40C6CB3: Tcl_FSGetFileSystemForPath (tclIOUtil.c:4429)
==4593==    by 0x40C4CC7: Tcl_FSAccess (tclIOUtil.c:2127)
==4593==    by 0x404F159: CheckAccess (tclCmdAH.c:1402)
==4593==    by 0x404DD8D: Tcl_FileObjCmd (tclCmdAH.c:943)
==4593==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)

[K28] was misidentified as a different leak.

==4593== 136 (24 direct, 112 indirect) bytes in 1 blocks are definitely lost in loss record 2,177 of 4,220
==4593==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4593==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4593==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4593==    by 0x40D6FA1: Tcl_DuplicateObj (tclObj.c:1012)
==4593==    by 0x8056BA6: TestReportInFilesystem (tclTest.c:6398)
==4593==    by 0x40C6CB3: Tcl_FSGetFileSystemForPath (tclIOUtil.c:4429)
==4593==    by 0x40C4C37: Tcl_FSLstat (tclIOUtil.c:2052)
==4593==    by 0x404F1D0: GetStatBuf (tclCmdAH.c:1444)
==4593==    by 0x404E63C: Tcl_FileObjCmd (tclCmdAH.c:1139)
==4593==    by 0x4091D30: TclExecuteByteCode (tclExecute.c:1834)

[K20] relates to 'glob' It may be a leak in the 'simple' test filesystem.

==4593== 310 (140 direct, 170 indirect) bytes in 5 blocks are definitely lost in loss record 2,466 of 4,220
==4593==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4593==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4593==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4593==    by 0x40DF819: SetFsPathFromAny (tclPathObj.c:2428)
==4593==    by 0x40DF205: TclFSSetPathDetails (tclPathObj.c:2162)
==4593==    by 0x40C6CCC: Tcl_FSGetFileSystemForPath (tclIOUtil.c:4435)
==4593==    by 0x40C3C81: Tcl_FSMatchInDirectory (tclIOUtil.c:1093)
==4593==    by 0x80575FD: SimpleMatchInDirectory (tclTest.c:6809)
==4593==    by 0x40C3CD2: Tcl_FSMatchInDirectory (tclIOUtil.c:1108)
==4593==    by 0x40AC506: DoGlob (tclFileName.c:2334)

[K08] relates to 'glob' It may be a leak in the 'simple' test filesystem.

==4593== 296 (144 direct, 152 indirect) bytes in 6 blocks are definitely lost in loss record 2,568 of 4,220
==4593==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4593==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4593==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4593==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4593==    by 0x8057578: SimpleRedirect (tclTest.c:6778)
==4593==    by 0x80575DB: SimpleMatchInDirectory (tclTest.c:6807)
==4593==    by 0x40C3CD2: Tcl_FSMatchInDirectory (tclIOUtil.c:1108)
==4593==    by 0x40AC506: DoGlob (tclFileName.c:2334)
==4593==    by 0x40ABB43: TclGlob (tclFileName.c:1911)
==4593==    by 0x40AB3AE: Tcl_GlobObjCmd (tclFileName.c:1580)

[K12] thought to leak in test filesystem-4.0 - but notes are uncertain

==4593== 162 (24 direct, 138 indirect) bytes in 1 blocks are definitely lost in loss record 2,586 of 4,220
==4593==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4593==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4593==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4593==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4593==    by 0x40DBFC7: TclSubstTokens (tclParse.c:2176)
==4593==    by 0x4044AB5: TclEvalEx (tclBasic.c:4086)
==4593==    by 0x404461B: Tcl_EvalEx (tclBasic.c:3892)
==4593==    by 0x40E1B59: Tcl_PkgRequireProc (tclPkg.c:493)
==4593==    by 0x40E2EA6: Tcl_PackageObjCmd (tclPkg.c:1013)
==4593==    by 0x4091D30: TclExecuteByteCode (tclExecute.c:1834)

[K02] appears in tcltest.test subprocess

[K08a] appears to be a variation on [K08]:

==4593== 62 (24 direct, 38 indirect) bytes in 1 blocks are definitely lost in loss record 2,666 of 4,220
==4593==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4593==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4593==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4593==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4593==    by 0x8057578: SimpleRedirect (tclTest.c:6778)
==4593==    by 0x80575DB: SimpleMatchInDirectory (tclTest.c:6807)
==4593==    by 0x40C3CD2: Tcl_FSMatchInDirectory (tclIOUtil.c:1108)
==4593==    by 0x40AC506: DoGlob (tclFileName.c:2334)
==4593==    by 0x40ACA55: DoGlob (tclFileName.c:2493)
==4593==    by 0x40ABB43: TclGlob (tclFileName.c:1911)

[K21] is not yet isolated to a test case; fails in a subprocess from 
tcltest.test.  Donal suspects it's another manifestation of [K15]

==4593== 48 bytes in 2 blocks are definitely lost in loss record 2,769 of 4,220
==4593==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4593==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4593==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4593==    by 0x40E7199: TclObjInterpProcCore (tclProc.c:1439)
==4593==    by 0x40E6E55: ObjInterpProcEx (tclProc.c:1269)
==4593==    by 0x40E6CD1: TclObjInterpProc (tclProc.c:1199)
==4593==    by 0x4091D30: TclExecuteByteCode (tclExecute.c:1834)
==4593==    by 0x408F913: TclCompEvalObj (tclExecute.c:996)
==4593==    by 0x40459F1: TclEvalObjEx (tclBasic.c:4677)
==4593==    by 0x404CCD1: Tcl_CatchObjCmd (tclCmdAH.c:253)

[K08b] is another variation on K08

==4593== 72 (24 direct, 48 indirect) bytes in 1 blocks are definitely lost in loss record 2,870 of 4,220
==4593==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4593==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4593==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4593==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4593==    by 0x8057578: SimpleRedirect (tclTest.c:6778)
==4593==    by 0x80575DB: SimpleMatchInDirectory (tclTest.c:6807)
==4593==    by 0x40C3CD2: Tcl_FSMatchInDirectory (tclIOUtil.c:1108)
==4593==    by 0x40AC913: DoGlob (tclFileName.c:2456)
==4593==    by 0x40ABB43: TclGlob (tclFileName.c:1911)
==4593==    by 0x40AB3AE: Tcl_GlobObjCmd (tclFileName.c:1580)

[K12a] is [K12] by another path

==4593== 2,592 (384 direct, 2,208 indirect) bytes in 16 blocks are definitely lost in loss record 3,432 of 4,220
==4593==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4593==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4593==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4593==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4593==    by 0x40DBFC7: TclSubstTokens (tclParse.c:2176)
==4593==    by 0x4044AB5: TclEvalEx (tclBasic.c:4086)
==4593==    by 0x404461B: Tcl_EvalEx (tclBasic.c:3892)
==4593==    by 0x40E1B59: Tcl_PkgRequireProc (tclPkg.c:493)
==4593==    by 0x40E2EA6: Tcl_PackageObjCmd (tclPkg.c:1013)
==4593==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)

[K11a] is [K11] by another path:

==4593== 672 (96 direct, 576 indirect) bytes in 4 blocks are definitely lost in loss record 3,559 of 4,220
==4593==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4593==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4593==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4593==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4593==    by 0x40DDA34: Tcl_FSJoinPath (tclPathObj.c:962)
==4593==    by 0x40AA078: Tcl_FSJoinToPath (tclFileName.c:793)
==4593==    by 0x404DFBD: Tcl_FileObjCmd (tclCmdAH.c:1005)
==4593==    by 0x4091D30: TclExecuteByteCode (tclExecute.c:1834)
==4593==    by 0x408F913: TclCompEvalObj (tclExecute.c:996)
==4593==    by 0x40E75BA: TclObjInterpProcCore (tclProc.c:1517)

[K16] in a subprocess of tcltest.test.

==4593== 295 (20 direct, 275 indirect) bytes in 1 blocks are definitely lost in loss record 3,561 of 4,220
==4593==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4593==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4593==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4593==    by 0x40D9582: AllocObjEntry (tclObj.c:3287)
==4593==    by 0x40ACF72: Tcl_CreateHashEntry (tclHash.c:383)
==4593==    by 0x4085027: Tcl_DictObjPut (tclDictObj.c:749)
==4593==    by 0x4085956: DictCreateCmd (tclDictObj.c:1331)
==4593==    by 0x4089329: Tcl_DictObjCmd (tclDictObj.c:2994)
==4593==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)
==4593==    by 0x404516F: TclEvalEx (tclBasic.c:4221)

[K29] was misnumbered [K12] in earlier reports

==4593== 864 bytes in 36 blocks are definitely lost in loss record 3,926 of 4,220
==4593==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4593==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4593==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4593==    by 0x40D7C7B: Tcl_NewIntObj (tclObj.c:1833)
==4593==    by 0x40BD8DB: FixLevelCode (tclIO.c:10008)
==4593==    by 0x40BD620: Tcl_SetChannelErrorInterp (tclIO.c:9897)
==4593==    by 0x8054EAE: TestChannelCmd (tclTest.c:5648)
==4593==    by 0x40424A8: TclInvokeStringCommand (tclBasic.c:2020)
==4593==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)
==4593==    by 0x404516F: TclEvalEx (tclBasic.c:4221)

==4593== 864 bytes in 36 blocks are definitely lost in loss record 3,928 of 4,220
==4593==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4593==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4593==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4593==    by 0x40D7C7B: Tcl_NewIntObj (tclObj.c:1833)
==4593==    by 0x40BD8DB: FixLevelCode (tclIO.c:10008)
==4593==    by 0x40BD717: Tcl_SetChannelError (tclIO.c:9933)
==4593==    by 0x8054DF1: TestChannelCmd (tclTest.c:5635)
==4593==    by 0x40424A8: TclInvokeStringCommand (tclBasic.c:2020)
==4593==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)
==4593==    by 0x404516F: TclEvalEx (tclBasic.c:4221)

The following leaks occurred in the main tcltest process:

[K02] we've seen before

==4185== 498 (84 direct, 414 indirect) bytes in 3 blocks are definitely lost in loss record 1,703 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40DF819: SetFsPathFromAny (tclPathObj.c:2428)
==4185==    by 0x40D6D27: Tcl_ConvertToType (tclObj.c:584)
==4185==    by 0x40DDE41: Tcl_FSConvertToPathType (tclPathObj.c:1161)
==4185==    by 0x40DE6C5: Tcl_FSGetNormalizedPath (tclPathObj.c:1690)
==4185==    by 0x40C4751: Tcl_FSEvalFileEx (tclIOUtil.c:1757)
==4185==    by 0x405969D: Tcl_SourceObjCmd (tclCmdMZ.c:953)
==4185==    by 0x4091D30: TclExecuteByteCode (tclExecute.c:1834)

[K06] we've seen before

==4185== 136 (24 direct, 112 indirect) bytes in 1 blocks are definitely lost in loss record 1,788 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40D6FA1: Tcl_DuplicateObj (tclObj.c:1012)
==4185==    by 0x8056BA6: TestReportInFilesystem (tclTest.c:6398)
==4185==    by 0x40C6CB3: Tcl_FSGetFileSystemForPath (tclIOUtil.c:4429)
==4185==    by 0x40C4CC7: Tcl_FSAccess (tclIOUtil.c:2127)
==4185==    by 0x404F159: CheckAccess (tclCmdAH.c:1402)
==4185==    by 0x404DD8D: Tcl_FileObjCmd (tclCmdAH.c:943)
==4185==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)

[K15] Donal claims to have fixed

==4185== 72 bytes in 3 blocks are definitely lost in loss record 1,988 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40E7199: TclObjInterpProcCore (tclProc.c:1439)
==4185==    by 0x40E6E55: ObjInterpProcEx (tclProc.c:1269)
==4185==    by 0x40E6CD1: TclObjInterpProc (tclProc.c:1199)
==4185==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)
==4185==    by 0x4044426: Tcl_EvalObjv (tclBasic.c:3737)
==4185==    by 0x40D48D1: NsEnsembleImplementationCmd (tclNamesp.c:6243)
==4185==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)

[K18] appears to be questionable test cases in unload.test

==4185== 78 (72 direct, 6 indirect) bytes in 3 blocks are definitely lost in loss record 2,009 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4185==    by 0x40FF210: Tcl_SetVar2 (tclVar.c:1393)
==4185==    by 0x40FF1E8: Tcl_SetVar (tclVar.c:1341)
==4185==    by 0x4138D5B: ???
==4185==    by 0x4138DBF: ???
==4185==    by 0x40CBE8D: Tcl_UnloadObjCmd (tclLoad.c:741)
==4185==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)

==4185== 104 (96 direct, 8 indirect) bytes in 4 blocks are definitely lost in loss record 2,071 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4185==    by 0x40FF210: Tcl_SetVar2 (tclVar.c:1393)
==4185==    by 0x40FF1E8: Tcl_SetVar (tclVar.c:1341)
==4185==    by 0x4138D5B: ???
==4185==    by 0x40CBE8D: Tcl_UnloadObjCmd (tclLoad.c:741)
==4185==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)
==4185==    by 0x404516F: TclEvalEx (tclBasic.c:4221)

[K28] again

==4185== 136 (24 direct, 112 indirect) bytes in 1 blocks are definitely lost in loss record 2,117 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40D6FA1: Tcl_DuplicateObj (tclObj.c:1012)
==4185==    by 0x8056BA6: TestReportInFilesystem (tclTest.c:6398)
==4185==    by 0x40C6CB3: Tcl_FSGetFileSystemForPath (tclIOUtil.c:4429)
==4185==    by 0x40C4C37: Tcl_FSLstat (tclIOUtil.c:2052)
==4185==    by 0x404F1D0: GetStatBuf (tclCmdAH.c:1444)
==4185==    by 0x404E63C: Tcl_FileObjCmd (tclCmdAH.c:1139)
==4185==    by 0x4091D30: TclExecuteByteCode (tclExecute.c:1834)

[K18] more memory mismanaged in unload.test

==4185== 104 (96 direct, 8 indirect) bytes in 4 blocks are definitely lost in loss record 2,327 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4185==    by 0x40FF210: Tcl_SetVar2 (tclVar.c:1393)
==4185==    by 0x40FF1E8: Tcl_SetVar (tclVar.c:1341)
==4185==    by 0x4138BD4: ???
==4185==    by 0x40CB687: Tcl_LoadObjCmd (tclLoad.c:432)
==4185==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)
==4185==    by 0x404516F: TclEvalEx (tclBasic.c:4221)

[K20] again

==4185== 310 (140 direct, 170 indirect) bytes in 5 blocks are definitely lost in loss record 2,419 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40DF819: SetFsPathFromAny (tclPathObj.c:2428)
==4185==    by 0x40DF205: TclFSSetPathDetails (tclPathObj.c:2162)
==4185==    by 0x40C6CCC: Tcl_FSGetFileSystemForPath (tclIOUtil.c:4435)
==4185==    by 0x40C3C81: Tcl_FSMatchInDirectory (tclIOUtil.c:1093)
==4185==    by 0x80575FD: SimpleMatchInDirectory (tclTest.c:6809)
==4185==    by 0x40C3CD2: Tcl_FSMatchInDirectory (tclIOUtil.c:1108)
==4185==    by 0x40AC506: DoGlob (tclFileName.c:2334)

[K08] again

==4185== 296 (144 direct, 152 indirect) bytes in 6 blocks are definitely lost in loss record 2,503 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4185==    by 0x8057578: SimpleRedirect (tclTest.c:6778)
==4185==    by 0x80575DB: SimpleMatchInDirectory (tclTest.c:6807)
==4185==    by 0x40C3CD2: Tcl_FSMatchInDirectory (tclIOUtil.c:1108)
==4185==    by 0x40AC506: DoGlob (tclFileName.c:2334)
==4185==    by 0x40ABB43: TclGlob (tclFileName.c:1911)
==4185==    by 0x40AB3AE: Tcl_GlobObjCmd (tclFileName.c:1580)

[K12] again

==4185== 162 (24 direct, 138 indirect) bytes in 1 blocks are definitely lost in loss record 2,521 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4185==    by 0x40DBFC7: TclSubstTokens (tclParse.c:2176)
==4185==    by 0x4044AB5: TclEvalEx (tclBasic.c:4086)
==4185==    by 0x404461B: Tcl_EvalEx (tclBasic.c:3892)
==4185==    by 0x40E1B59: Tcl_PkgRequireProc (tclPkg.c:493)
==4185==    by 0x40E2EA6: Tcl_PackageObjCmd (tclPkg.c:1013)
==4185==    by 0x4091D30: TclExecuteByteCode (tclExecute.c:1834)

[K02a] again

==4185== 151 (24 direct, 127 indirect) bytes in 1 blocks are definitely lost in loss record 2,544 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4185==    by 0x40DC660: TclFSNormalizeAbsolutePath (tclPathObj.c:235)
==4185==    by 0x40DEE39: Tcl_FSGetNormalizedPath (tclPathObj.c:1920)
==4185==    by 0x40C4751: Tcl_FSEvalFileEx (tclIOUtil.c:1757)
==4185==    by 0x405969D: Tcl_SourceObjCmd (tclCmdMZ.c:953)
==4185==    by 0x4091D30: TclExecuteByteCode (tclExecute.c:1834)
==4185==    by 0x408F913: TclCompEvalObj (tclExecute.c:996)

[K18] more memory mismanaged in unload.test

==4185== 52 (48 direct, 4 indirect) bytes in 2 blocks are definitely lost in loss record 2,567 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4185==    by 0x40FF210: Tcl_SetVar2 (tclVar.c:1393)
==4185==    by 0x40FF1E8: Tcl_SetVar (tclVar.c:1341)
==4185==    by 0x4138D8C: ???
==4185==    by 0x4138DBF: ???
==4185==    by 0x40CBE8D: Tcl_UnloadObjCmd (tclLoad.c:741)
==4185==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)

[K30] had not been identified as a separate leak before

==4185== 146 (28 direct, 118 indirect) bytes in 1 blocks are definitely lost in loss record 2,598 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40DF819: SetFsPathFromAny (tclPathObj.c:2428)
==4185==    by 0x40D6D27: Tcl_ConvertToType (tclObj.c:584)
==4185==    by 0x40DDE41: Tcl_FSConvertToPathType (tclPathObj.c:1161)
==4185==    by 0x40DCD05: TclFSGetPathType (tclPathObj.c:496)
==4185==    by 0x40C62D6: Tcl_FSSplitPath (tclIOUtil.c:3743)
==4185==    by 0x40DD19C: TclPathPart (tclPathObj.c:698)
==4185==    by 0x404F016: Tcl_FileObjCmd (tclCmdAH.c:1344)

[K08c] another variation on [K08]

==4185== 62 (24 direct, 38 indirect) bytes in 1 blocks are definitely lost in loss record 2,618 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4185==    by 0x8057578: SimpleRedirect (tclTest.c:6778)
==4185==    by 0x80575DB: SimpleMatchInDirectory (tclTest.c:6807)
==4185==    by 0x40C3CD2: Tcl_FSMatchInDirectory (tclIOUtil.c:1108)
==4185==    by 0x40AC506: DoGlob (tclFileName.c:2334)
==4185==    by 0x40ACA55: DoGlob (tclFileName.c:2493)
==4185==    by 0x40ABB43: TclGlob (tclFileName.c:1911)

[K18] more memory mismanagement in unload.test

==4185== 78 (72 direct, 6 indirect) bytes in 3 blocks are definitely lost in loss record 2,823 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4185==    by 0x40FF210: Tcl_SetVar2 (tclVar.c:1393)
==4185==    by 0x40FF1E8: Tcl_SetVar (tclVar.c:1341)
==4185==    by 0x4138BD4: ???
==4185==    by 0x4138C99: ???
==4185==    by 0x40CB63B: Tcl_LoadObjCmd (tclLoad.c:423)
==4185==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)

[K17] is still present:

==4185== 162 (24 direct, 138 indirect) bytes in 1 blocks are definitely lost in loss record 2,866 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40C9E34: TclRegisterLiteral (tclLiteral.c:348)
==4185==    by 0x407C985: TclCompileScript (tclCompile.c:1577)
==4185==    by 0x407AAC1: TclSetByteCodeFromAny (tclCompile.c:493)
==4185==    by 0x407ACEA: SetByteCodeFromAny (tclCompile.c:588)
==4185==    by 0x408F977: TclCompEvalObj (tclExecute.c:1017)
==4185==    by 0x40459F1: TclEvalObjEx (tclBasic.c:4677)
==4185==    by 0x40B1418: SlaveEval (tclInterp.c:2491)

[K21] in the main process:

==4185== 48 bytes in 2 blocks are definitely lost in loss record 2,881 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40E7199: TclObjInterpProcCore (tclProc.c:1439)
==4185==    by 0x40E6E55: ObjInterpProcEx (tclProc.c:1269)
==4185==    by 0x40E6CD1: TclObjInterpProc (tclProc.c:1199)
==4185==    by 0x4091D30: TclExecuteByteCode (tclExecute.c:1834)
==4185==    by 0x408F913: TclCompEvalObj (tclExecute.c:996)
==4185==    by 0x40459F1: TclEvalObjEx (tclBasic.c:4677)
==4185==    by 0x404CCD1: Tcl_CatchObjCmd (tclCmdAH.c:253)

[K08] in the main process:

==4185== 72 (24 direct, 48 indirect) bytes in 1 blocks are definitely lost in loss record 2,886 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4185==    by 0x8057578: SimpleRedirect (tclTest.c:6778)
==4185==    by 0x80575DB: SimpleMatchInDirectory (tclTest.c:6807)
==4185==    by 0x40C3CD2: Tcl_FSMatchInDirectory (tclIOUtil.c:1108)
==4185==    by 0x40AC913: DoGlob (tclFileName.c:2456)
==4185==    by 0x40ABB43: TclGlob (tclFileName.c:1911)
==4185==    by 0x40AB3AE: Tcl_GlobObjCmd (tclFileName.c:1580)

[K18] more memory mismanaged in unload.test

==4185== 78 (72 direct, 6 indirect) bytes in 3 blocks are definitely lost in loss record 2,900 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4185==    by 0x40FF210: Tcl_SetVar2 (tclVar.c:1393)
==4185==    by 0x40FF1E8: Tcl_SetVar (tclVar.c:1341)
==4185==    by 0x4138D8C: ???
==4185==    by 0x40CBE8D: Tcl_UnloadObjCmd (tclLoad.c:741)
==4185==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)
==4185==    by 0x404516F: TclEvalEx (tclBasic.c:4221)

[K02] in yet another variety

==4185== 5,508 (952 direct, 4,556 indirect) bytes in 34 blocks are definitely lost in loss record 3,328 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40DF819: SetFsPathFromAny (tclPathObj.c:2428)
==4185==    by 0x40D6D27: Tcl_ConvertToType (tclObj.c:584)
==4185==    by 0x40DDE41: Tcl_FSConvertToPathType (tclPathObj.c:1161)
==4185==    by 0x40DE6C5: Tcl_FSGetNormalizedPath (tclPathObj.c:1690)
==4185==    by 0x40C4751: Tcl_FSEvalFileEx (tclIOUtil.c:1757)
==4185==    by 0x405969D: Tcl_SourceObjCmd (tclCmdMZ.c:953)
==4185==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)

[K12] again.

==4185== 3,078 (456 direct, 2,622 indirect) bytes in 19 blocks are definitely lost in loss record 3,355 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4185==    by 0x40DBFC7: TclSubstTokens (tclParse.c:2176)
==4185==    by 0x4044AB5: TclEvalEx (tclBasic.c:4086)
==4185==    by 0x404461B: Tcl_EvalEx (tclBasic.c:3892)
==4185==    by 0x40E1B59: Tcl_PkgRequireProc (tclPkg.c:493)
==4185==    by 0x40E2EA6: Tcl_PackageObjCmd (tclPkg.c:1013)
==4185==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)

[K29] again

==4185== 864 bytes in 36 blocks are definitely lost in loss record 3,480 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40D7C7B: Tcl_NewIntObj (tclObj.c:1833)
==4185==    by 0x40BD8DB: FixLevelCode (tclIO.c:10008)
==4185==    by 0x40BD620: Tcl_SetChannelErrorInterp (tclIO.c:9897)
==4185==    by 0x8054EAE: TestChannelCmd (tclTest.c:5648)
==4185==    by 0x40424A8: TclInvokeStringCommand (tclBasic.c:2020)
==4185==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)
==4185==    by 0x404516F: TclEvalEx (tclBasic.c:4221)

==4185== 864 bytes in 36 blocks are definitely lost in loss record 3,482 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40D7C7B: Tcl_NewIntObj (tclObj.c:1833)
==4185==    by 0x40BD8DB: FixLevelCode (tclIO.c:10008)
==4185==    by 0x40BD717: Tcl_SetChannelError (tclIO.c:9933)
==4185==    by 0x8054DF1: TestChannelCmd (tclTest.c:5635)
==4185==    by 0x40424A8: TclInvokeStringCommand (tclBasic.c:2020)
==4185==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)
==4185==    by 0x404516F: TclEvalEx (tclBasic.c:4221)

[K11] again

==4185== 1,512 (216 direct, 1,296 indirect) bytes in 9 blocks are definitely lost in loss record 3,536 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40ED236: Tcl_NewStringObj (tclStringObj.c:210)
==4185==    by 0x40DDA34: Tcl_FSJoinPath (tclPathObj.c:962)
==4185==    by 0x40AA078: Tcl_FSJoinToPath (tclFileName.c:793)
==4185==    by 0x404DFBD: Tcl_FileObjCmd (tclCmdAH.c:1005)
==4185==    by 0x4091D30: TclExecuteByteCode (tclExecute.c:1834)
==4185==    by 0x408F913: TclCompEvalObj (tclExecute.c:996)
==4185==    by 0x40E75BA: TclObjInterpProcCore (tclProc.c:1517)

[K16] again

==4185== 295 (20 direct, 275 indirect) bytes in 1 blocks are definitely lost in loss record 3,555 of 4,083
==4185==    at 0x401A846: malloc (vg_replace_malloc.c:149)
==4185==    by 0x404001D: TclpAlloc (tclAlloc.c:710)
==4185==    by 0x404A5C1: Tcl_Alloc (tclCkalloc.c:1019)
==4185==    by 0x40D9582: AllocObjEntry (tclObj.c:3287)
==4185==    by 0x40ACF72: Tcl_CreateHashEntry (tclHash.c:383)
==4185==    by 0x4085027: Tcl_DictObjPut (tclDictObj.c:749)
==4185==    by 0x4085956: DictCreateCmd (tclDictObj.c:1331)
==4185==    by 0x4089329: Tcl_DictObjCmd (tclDictObj.c:2994)
==4185==    by 0x40441E5: TclEvalObjvInternal (tclBasic.c:3617)
==4185==    by 0x404516F: TclEvalEx (tclBasic.c:4221)