在ubuntu12下,写了一个C++模块和tcl脚本,结果运行出现Segmentation fault错误,这一般是C++程序的问题。怎么调试呢?
使用Kdevelop4调试ns(kdevelop的安装在ubuntu的软件中心搜索可以找到),首先(不是必须的),在ns的Makefile文件中,把CCOPT = -wall 改为CCOPT = -wall -g,可以输出调试信息。
当Attach to process时,弹出Operation not permitted的错误,通过以下语句解决了:
sudo chmod +s /usr/bin/gdb
而用$ echo 0 > /proc/sys/kernel/yama/ptrace_scope或setting ptrace_scope to 0 in /etc/sysctl.d/10-ptrace.conf我没弄成功。
这时候,点菜单栏上Run->Continue让ns继续运行,然后在控制台的%提示符下,输入source ****.tcl,程序出现错误并暂停,可以看到kdevelop的输出窗口中用箭头显示了出错调用的地方。
我调试的时候又出了一个错误
(1)warning: no class variable ClassName::debug_
see tcl-object.tcl in tclcl for info about this warning.
将ns-default.tcl文件中加入 ClassNameset debug_ 0,重新编译即可.
调试出现的第二个错误:
(2)warning: using backward co