ns3下利用insight排查waf错误
来源:互联网 发布:大数据与彩票 编辑:程序博客网 时间:2024/04/29 00:46
参考原文:
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是一样的。
- ns3下利用insight排查waf错误
- ns3 常用waf命令
- 使用WAF编译NS3, DCE
- ns3 waf配置遇到的一个问题
- Ubuntu下insight错误解决
- NS3 linux下编译出现unexpected indent错误
- Ubuntu下编译insight错误解决
- NS3编译错误Traceback解决方法
- ns3编译错误“UnicodeDecodeError”解决方法
- waf
- mysql利用颜表情绕过waf注入
- 在eclipse中开发ns3;run "waf configure" first!”;头文件报错,程序报错
- Ubuntu下NS3安装步骤
- ubuntu12.04下安装ns3
- Ubuntu下NS3安装步骤
- Ubuntu下NS3安装步骤
- waf shell执行错误的解决方法
- 排查MYSQL42000错误
- [转载]Spring Cloud基础教程
- [译]Android Protobuf实例教程
- 请求报错406
- SpringMVC实体类时间格式化
- ist的三种遍历方法
- ns3下利用insight排查waf错误
- java.lang.IllegalStateException: Max number of active transactions reached:50
- Hough
- MyBatis if标签比较字符串
- mysql学习
- [转载]Spring Boot基础教程
- ubuntu 下vim安装taglist插件
- 利用python对一段英文文本进行分词,分句
- 声反馈抑制使用matlab/simulink仿真