ns3下利用insight排查waf错误

参考原文:

https://www.nsnam.org/wiki/HOWTO_understand_and_find_cause_of_terminated_with_signal_errors

insight介绍:

         Insight是一个Tcl/Tk编写的gdb的图形用户接口,它是由在Redhat以及Cygnus的工程师写的。Redhat大方的将其捐赠给大众使用,甚至不时的提供人力继续完善它的功能。Insight项目始于1994年,至今已经有颇为成熟,它能很好的发挥大部分gdb的强大功能。官方网站http://www.sourceware.org/insight/index.php,最新的版本为2009年更新的6.8-1。

系统环境:kali 1+ ns3

1.  安装insight

1.1 安装必要依赖库:

sudo apt-get build-dep gdb
sudo apt-get install tk tcl libx11-dev xinit

1.2 下载:

wget ftp://sourceware.org/pub/insight/releases/insight-6.8-1a.tar.bz2

1.3 解压:

bizp2 -d insight-6.8-1a.tar.bz2; tar xvfinsight-6.8-1a.tar

1.4 安装:

mkdir $HOME/install

cd  $HOME/insight-6.8-1

mkdir build

cd  build

../configure --prefix=$HOME/install --disable-werror

make

make install

2.  配置系统环境参数

    在终端中运行vi ~/.bashrc命令,将/root/install/bin加入PATH变量中。如果存在着TCL_LIBRARY变量,则将其注释掉。

    source /root/.bashrc  //重新读取

    如果之前设置过环境TCL_LIBRARY、ITCL_LIBRARY变量,删除掉。

    unset TCL_LIBRARY

    unset ITCL_LIBRARY

3.  运行insight

4.  正常运行。

vi /root/ns-allinone-3.22/ns-3.22/scratch/hs.cc

#include "ns3/core-module.h"

 NS_LOG_COMPONENT_DEFINE ("HelloSimulator");

 using namespace ns3;

   int

 main (int argc, char *argv[])

 {

   NS_LOG_UNCOND ("Hello Simulator");

   //1.系统保留区地址0写入数值0,可引发保护性错误

   //*(char *)0 = 0;

   //2.下两行代码可引发除0错误

   // int i0 = 0,i1 = 1;

   //NS_LOG_UNCOND (i1 / i0);

   //3.下一行代码可引发reproducible bug

   //return 1 ;

}

5.  错误排查示例1:

取消"//*(char *)0 =0;"前的注释,运行hs.cc脚本,则会出现以下terminated with signal SIGSEGV问题。

    在终端中,运行waf --run scratch/hs --command-template="insight %s"命令,会跳出图形界面,如下所示。

 

    首先点击“运行”按钮,接着点击“继续”按钮,就有“接收到错误”的提醒,如下所示。

   

 

   

 

    点击“ok”按钮,就可以定位到出现此错误的代码处,如下所示。

   

6.  错误排查示例2和示例3,排查过程跟错误排查示例1是一样的。

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值