• 6361阅读
  • 5回复

make成功后,报段错误 [复制链接]

上一主题 下一主题
离线laiobot
 
只看楼主 倒序阅读 楼主  发表于: 2009-12-03
请问我改怎么检查是代码哪里出了错,有没有一步一步的调试方法?
离线dbzhang800

只看该作者 1楼 发表于: 2009-12-03
和你写其他程序一样

1. 添加 qDebug 等IO语句
2. 用 gdb、cdb等调试器
离线steinlee

只看该作者 2楼 发表于: 2009-12-05
use valgrind and you can find it right away.

引用楼主laiobot于2009-12-03 16:42发表的 make成功后,报段错误 :
请问我改怎么检查是代码哪里出了错,有没有一步一步的调试方法?
Looking for remote C/C++ and Qt 兼职
离线snowdream
只看该作者 3楼 发表于: 2009-12-06
可能是内存泄漏,最近也在研究这个。

首先运行ulimit -c unlimited,这样产生coredump的时候可以把内存全部dump下来
编译的时候全部用g++ -g 编译,-g表示带debug信息
直接运行,然后会产生一个core.xxx的文件
运行gdb 可执行文件名字 core文件名字
where可以看到哪行出的错

详情参考:
http://topic.csdn.net/u/20081207/12/5bc7258b-e6aa-43f1-998d-f7a046ad976c.html
2楼
QQ:273247606
希望与大家一起交流QT~
离线huha2018
只看该作者 4楼 发表于: 2009-12-07
参数异常 !
离线foxyz

只看该作者 5楼 发表于: 2009-12-07
这个太简单了, 一般是野指针问题,要想定位具体在代码的哪里, 用各种调试工具,几秒钟就OK.
比如:dbx,debug,报段错误后,where来查看call stacks就能定位到具体类的具体函数,然后检查函数中都有哪些指针,这些指针是否都是合法的。 另外,C++不象Java,C++不会自动初始化指针变量为NULL,你的成员指针变量需要在构造函数内先初始化成NULL,否则通过判断是否为NULL来确定指针的合法性就出错了
快速回复
限100 字节
 
上一个 下一个