调试器tcl-debug的安装

NS2调试器tcl-debug的安装

目前,NS支持由Don Libes开发的OTcl调试器tcl-debug,可以在网站
http://expect.nist.gov/tcl-debug
上下载。
安装步骤如下:
1. 将下载的tar包拷贝到与NS平行的目录下,例如/home/romeo/ns2/ns-allinone-2.30/下,使用命令tar -zxvf tcl-debug.tar.gz 进行解压
2. 进入解压时创见的目录tcl-debug-2.0,运行命令
./configure --prefix=/home/zgbhqxf/ns-allinone-2.30 --with-tcl=/home/zgbhqxf/ns-allinone-2.30/tcl8.4.13/unix 其中,需要用户自己替换相应的NS和Tcl安装路径
3. 运行命令 make
4. 下面要重新编译NS,并加入相应的调试器模块,进入到ns- 2.30目录下,运行命令:
./configure --with-tcldebug=/home/romeo/ns2/ns-allinone-2.30/tcl-debug-2.0
make clean
在make前修改my-endian.h
#ifndef _ENDIAN_H_
#define _ENDIAN_H_
……
#endif
这个定义有冲突,只要将其改为
#ifndef _MY_ENDIAN_H_
#define _MY_ENDIAN_H_
#endif
再make
完成后测试
puts "test debugging"
debug 1
set a "debug continue..."
puts $a
然后用ns运行该脚本,如果显示类似于下面的文本,
test debugging
2: lappend auto_path $dbg_library dbg2.0>
就意味着已经成功安装调试器了。 可以用gdb进行调试了
./configure --prefix=/home/XXX/ns-allinone-2.33/ns-2.33 --with-tcl=/home/XXX /ns-allinone-2.33/tcl8.4.18/unix
1.下载 tcl-debug-2.0;将下载的tar包拷贝到与NS-2.33平行的目录下,并解压
2. 编译tcl-debug,并且将产生的可加载的库文件复制到NS-2.33的库目录里面,具体步骤如下:
   1) 进入到tcl-debug目录下面
            $ cd tcl-debug-2.0
   2)  配置并且编译tcl-debug
        $ ./configure --prefix=/home/XXX/ns-allinone-2.33/ns-2.33 --with-tcl=/home/XXX /ns-allinone-2.33/tcl8.4.18/unix 其中, XXX为你的用户目录文件夹名字


$ make
   3)检查可加载的库文件(*.a) 在编译之后是否被创建。
        查看是否产生了一个"libtcldbg.a" 文件。他是一个tcl的库文件。
  4) 复制这个库文件到NS-2 库目录里面,即 /home/ XXX /ns-allinone-2.33 /lib下面
3. 编译NS-2
  1) 进入ns-2.33目录下面,即 /home/XXX/ns-allinone-2.33/ns-2.33
  2) 重新配置NS-2以便启用tcl-debug.

      $ ./configure --with-tcldebug=/home/XXX/ns-allinone-2.33/ns-2.33/tcl-debug-2.0
     
   注意:你可以从屏幕输出的信息查看到tcl-debug是否被验证了。
       如果你没有看到以下的文字,你需要重复以前的步骤。
    Checking for libtcldbg... -L/home/XXX/ns-allinone-2.33/ns-2.33 /tcl-debug-2.0 -ltcldbg
       上面的文字在下面这句话之后出现   
     checking dmallc... not requested with --with-dmalloc
  3)删除以前的编译纪录
           $ make clean
        注:这一步骤非常重要!
  4)重新编译NS-2
          $ make   
         现在tcl-debug已经嵌入到NS-2的可执行文件"ns.exe"中去了
  5)检查NS-2是否能够正常运行。随便选择一个脚本测试一下就可以了
         $ ns  example.tcl
4. 检查tcl-debug是否能够正常工作。
    你可以通过添加debug 1在你的脚本中设置断点。示例如下:
    现在已经安装好tcl-debug了,可以用这段脚本来测试一下:
puts "test debugging"
debug 1
set a "debug continue..."
puts $a

然后用ns运行该脚本,如果显示类似于下面的文本,就意味着已经成功安装调试器了。
test debugging
2: lappend auto_path $dbg_library
dbg2.0>

调试步骤
设断点的方法是,直接在脚本文件中相应的位置加上debug 1。一些基本的命令如下:
s 单步执行(进入进程)
n 单步执行(不进入进程)
c 继续
r 继续执行直到从过程中返回
u 转至上级作用域
d 转至下级作用域
w 列出调用栈
b 设置,清除或显示断点
h 帮助

运行脚本,就会在相应的断点位置停下来,可以使用puts命令来打印输出各种变量的值。info也是一个我常用的命令。
info exists <variable>
<variable> info class //查询一个对象的类名
<variable> info instances //查询一个类的所有实例
<variable> info instprocs //查询一个类的所有实例过程
<variable> info vars
<variable> info superclass/subclass //查询一个类的超类/子类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值