返回信息流(gdb) run test-igmp.tcl
Starting program: /home/jonne/ns-allinone-2.33/ns-2.33/IGMP-SIM/ns.exe test-igmp
.tcl
[New thread 1160.0xf48]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[New thread 1160.0xed8]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
Error: Cannot open shared library: No such file or directory
(no debugging symbols found)
Program exited with code 01.
这是在用gdb调试一个脚本代码的时候出现的问题。
焦点在三个地方:
1.我看上面有两个线程,是说我实际定了两个线程吗(我还不怎么会多线程编程呢)?
2.Cannot open shared library 这是什么意思?
3.Program exited with code 01.这又是什么意思?
这是一条镜像帖。来源:北邮人论坛 / soft-design / #30426同步于 2008/10/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
请教大侠,下面这段调试结果说明什么问题?急等赐教
jonnezhou
2008/10/11镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
看着提示,是出现了两个线程。
1. 你在使用ns,所以它底层的实现是不是使用了多线程,我不清楚。
有可能你new出一个新对象来,它就是多线程的。
2. 打不开共享库。你的代码里使用了一个库,找不到该库,可能是没有安装,可能是没有配置好。
3. 出错退出。出错代码是01.
你要是想用gdb调试,只能调试在编译阶段有 -g 选项的库和可执行文件。
但是你的库文件,当时在make的时候,是不会带调试信息的,所以是没办法用gdb调试的。
ns里面有一个makefile文件,只要在一个地方加上 -g选项就可以调试了。
只不过,在调某个细节的时候,我得加点debug信息进去。
现在我都不知道问题在哪,感觉还没有运行呢。。。
那就先定位错误在哪一行呗。
定不了位,就排不了错。
最简单的方法,你随便在程序里插入一些printf,或者tcl脚本里面插入print语句。
就大概知道运行到什么地方了。
我只能从另一个方面给你点提示 如果你不是必须要在ns2里模拟的话 可以搭真实环境 igmp有现成的实现 具体的google xorp igmp
【 在 jonnezhou (当小虾遇到彩虹) 的大作中提到: 】
: (gdb) run test-igmp.tcl
: Starting program: /home/jonne/ns-allinone-2.33/ns-2.33/IGMP-SIM/ns.exe test-igmp
: .tcl
: ...................