我的应用程序在solaris9环境中有内存相关的问题,其中Tcl_DeleteInterp()
函数调用很多free()
和mutex_unlock()
函数。为了调试问题,我按照以下步骤在solaris服务器上编译tcl(使用TCL_MEM_DEBUG
标志),但仍然无法在解释器中使用'memory'命令。在服务器上(./configure –prefix=<directory needs to be installed> --enable-symbols=mem
) 即使使用TCL_MEM_DEBUG编译后内存命令也不可用
- 冉配置脚本使清洁所有
- 制作安装(TCL库和tlcsh exe文件被复制到在步骤1中指定的路径)
- 编译生成两个库(libtcl8。 4g.so和libtclstub8.4g.a),我将libtcl8.4g.so作为libtcl8.4.so复制到我的应用程序
- 复制了tcl8.4目录。
- 我还将tclsh8.4复制到$ PROVHOME/bin并创建软链接为tclsh-> tclsh8.4。
- 从我的应用程序中,我将启用调试符号的库链接到我创建Tcl解释器的地方。
- 初始化Tcl解释使用
Tcl_InitMemory()
函数(以使得存储器命令将在所提供的(ARG)解释器进行注册。
当我用解释器的exe(tclsh的)分别我可以执行所述存储器命令,但是当我在我的应用程序上使用相同的exe文件时,它不工作。有人可以帮我解决这个问题的可能原因吗? 也帮助我如何交叉验证它们是用TCL_MEM_DEBUG
标记编译的库 Will Tcl源代码tar文件包含Solaris目录,在那里我必须构建这些库或者我应该使用solaris平台的unix源代码?
感谢
我用它作为[内存活动],这是不被识别。 –
sakthivp