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