名字
memory - 控制 Tcl 内存调试功能。
总览
memory option ?arg arg ...?
描述
memory info
memory trace [on|off]
memory validate [on|off]
memory trace_on_at_malloc count
memory break_on_malloc count
memory display file
参见
关键字

名字

memory - 控制 Tcl 内存调试功能。

总览

memory option ?arg arg ...?

描述

memory  命令给予 Tcl 开发者控制 Tcl 内存调试的能力。下面描述这个命令的子选项。只有在编译 Tcl 的时候启用了(enable)内存调试功能才有这种能力(要在编译的时候定义 TCL_MEM_DEBUG)。

memory info
生成一个报告,包含自从 Tcl 启动以来分配和释放的(内存)总数,当前分配的包(未遇到相应的到 ckfree 的调用的到 ckalloc 的调用的当前数目)的数目,当前分配的字节数,和已分配的包和字节的最大的数目。

memory trace [on|off]

使内存跟踪开启或关闭。在开启内存跟踪的时候,对 ckalloc 的每次调用都导致向 stderr 写一行跟踪信息,其组成有字 ckalloc,随后是返回的地址,分配的内存总数,和进行分配的 C 文件名和代码的行数。例如:
ckalloc 40e478 98 tclProc.c 1406
以同样的方式跟踪 ckfree

memory validate [on|off]
使内存生效(validation)开启或关闭。在开启内存生效的时候,在对 ckallocckfree 的每次调用上,检查用 ckalloc 分配的每块现存的内存的守卫区(guard zone)。这有很大的性能影响而只在强烈怀疑有覆写(overwrite)问题的时候才使用。开启内存生效的益处是在覆写发生之后第一次调用 ckallocckfree 的时候就能检测到守卫区覆写,而不是在释放有覆写守卫区的内存的时候,释放可能在内存覆写发生之后才发生。

memory trace_on_at_malloc count
在进行了 count 数目 ckalloc 之后启用内存跟踪。例如,如果你键入了 memory trace_on_at_malloc 100,在第 100 次调用 ckalloc 之后,将对所有分配和释放的内存显示内存跟踪信息。因为在一个问题发生之前可能有许多内存活动,如果你能在问题出现( sets in)之前标识出一定数目的分配,决定(judicious)使用这个选项可以减轻跟踪导致的速度变慢(和生成的跟踪信息总数)。在发生一个守卫区错误时,输出自从 Tcl 启动以来发生的内存分配的当前数目。

memory break_on_malloc count
在进行了 count 数目的 ckalloc 分配之后,输出一个(中断)消息,表示它现在想进入 C 调试器。 Tcl 将向自身发出一个 SIGINT 信号。如果你在一个 C 调试器下运行 Tcl,它将接着进入调试器命令模式。

memory display file
向指定文件写当前所有分配的内存的一个列表。

参见

ckalloc, ckfree, Tcl_ValidateAllMemory, Tcl_DumpActiveMemory, TCL_MEM_DEBUG

关键字

内存, 调试
Copyright © 1992-1999 by Karl Lehenbauer and Mark Diekhans
Copyright © 2000 by Scriptics Corporation.
Copyright © 1995-1997 Roger E. Critchlow Jr.

[中文版维护人]

寒蝉退士

[中文版最新更新]

2001/09/28

《中国 Linux 论坛 man 手册页翻译计划》:

www.CMPP.net