memory.n
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:4k
源码类别:

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1992-1999 by Karl Lehenbauer and Mark Diekhans
  3. '" Copyright (c) 2000 by Scriptics Corporation.
  4. '" All rights reserved.
  5. '" 
  6. '" RCS: @(#) $Id: memory.n,v 1.5 2002/11/15 15:34:17 dkf Exp $
  7. '" 
  8. .so man.macros
  9. .TH memory n 8.1 Tcl "Tcl Built-In Commands"
  10. .BS
  11. .SH NAME
  12. memory - Control Tcl memory debugging capabilities.
  13. .SH SYNOPSIS
  14. fBmemory fIoption fR?fIarg arg ...fR?
  15. .BE
  16. .SH DESCRIPTION
  17. .PP
  18. The fBmemoryfR command gives the Tcl developer control of Tcl's memory
  19. debugging capabilities.  The memory command has several suboptions, which are
  20. described below.  It is only available when Tcl has been compiled with
  21. memory debugging enabled (when fBTCL_MEM_DEBUGfR is defined at
  22. compile time), and after fBTcl_InitMemoryfR has been called.
  23. .TP
  24. fBmemory activefR fIfilefR
  25. Write a list of all currently allocated memory to the specified fIfilefR.
  26. .TP
  27. fBmemory break_on_mallocfR fIcountfR
  28. After the fIcountfR allocations have been performed, fBckallocfR
  29. outputs a message to this effect and that it is now attempting to enter
  30. the C debugger.  Tcl will then issue a fISIGINTfR signal against itself.
  31. If you are running Tcl under a C debugger, it should then enter the debugger
  32. command mode.
  33. .TP
  34. fBmemory infofR
  35. Returns a report containing the total allocations and frees since 
  36. Tcl began, the current packets allocated (the current
  37. number of calls to fBckallocfR not met by a corresponding call 
  38. to fBckfreefR), the current bytes allocated, and the maximum number
  39. of packets and bytes allocated.
  40. .TP
  41. fB memory init [on|off]fR
  42. Turn on or off the pre-initialization of all allocated memory
  43. with bogus bytes.  Useful for detecting the use of uninitialized values.
  44. .TP
  45. fBmemory onexitfR fIfilefR
  46. Causes a list of all allocated memory to be written to the specified fIfilefR
  47. during the finalization of Tcl's memory subsystem.  Useful for checking
  48. that memory is properly cleaned up during process exit.
  49. .TP
  50. fBmemory tagfR fIstringfR
  51. Each packet of memory allocated by fBckallocfR can have associated
  52. with it a string-valued tag.  In the lists of allocated memory generated
  53. by fBmemory activefR and fBmemory onexitfR, the tag for each packet
  54. is printed along with other information about the packet.  The
  55. fBmemory tagfR command sets the tag value for subsequent calls
  56. to fBckallocfR to be fIstringfR.  
  57. .TP
  58. fBmemory trace [on|off]fR
  59. .br
  60. Turns memory tracing on or off.  When memory tracing is on, every call
  61. to fBckallocfR causes a line of trace information to be written to
  62. fIstderrfR, consisting of the word fIckallocfR, followed by the
  63. address returned, the amount of memory allocated, and the C filename
  64. and line number of the code performing the allocation.  For example:
  65. .RS
  66. .CS
  67. ckalloc 40e478 98 tclProc.c 1406
  68. .CE
  69. Calls to fBckfreefR are traced in the same manner.
  70. .RE
  71. .TP
  72. fBmemory trace_on_at_mallocfR fIcountfR
  73. Enable memory tracing after fIcountfR fBckallocfR's have been performed.
  74. For example, if you enter fBmemory trace_on_at_malloc 100fR,
  75. after the 100th call to fBckallocfR, memory trace information will begin
  76. being displayed for all allocations and frees.  Since there can be a lot
  77. of memory activity before a problem occurs, judicious use of this option
  78. can reduce the slowdown caused by tracing (and the amount of trace information
  79. produced), if you can identify a number of allocations that occur before
  80. the problem sets in.  The current number of memory allocations that have 
  81. occurred since Tcl started is printed on a guard zone failure.
  82. .TP
  83. fBmemory validate [on|off]fR
  84. Turns memory validation on or off. When memory validation is enabled,
  85. on every call to fBckallocfR or fBckfreefR, the guard zones are
  86. checked for every piece of memory currently in existence that was
  87. allocated by fBckallocfR.  This has a large performance impact and
  88. should only be used when overwrite problems are strongly suspected.
  89. The advantage of enabling memory validation is that a guard zone
  90. overwrite can be detected on the first call to fBckallocfR or
  91. fBckfreefR after the overwrite occurred, rather than when the
  92. specific memory with the overwritten guard zone(s) is freed, which may
  93. occur long after the overwrite occurred.
  94. .SH "SEE ALSO"
  95. ckalloc, ckfree, Tcl_ValidateAllMemory, Tcl_DumpActiveMemory, TCL_MEM_DEBUG
  96. .SH KEYWORDS
  97. memory, debug