linux下终端运行文件,代码没有错误,为什么出现段错误。

,如图... ,如图 展开
 我来答
转转耳朵
2014-11-03 · TA获得超过735个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:177万
展开全部
你代码也没有,调用堆栈也没有,谁能知道为啥段错误啊,要不然你猜我今天穿什么颜色的衣服?
大神也不敢说自己的代码肯定就没有错误,我猜你的意思是能正确编译吧?
那只能说明你的语法没错,仅此而已,写程序能正确编译只是第一步,后面调试的工作还很漫长。
下面说说怎么调试吧:
看你的系统提示应该还没有打开core输出,在运行程序前打个命令:
ulimit -c unlimited
这样设置之后再运行程序在段错误的时候能core dump,有core之后再gdb ./test core.xxx
core文件一般在你运行程序的目录里,core文件后缀每次不同,后面的xxx你需要自己看看文件名,一般是运行时的PID号。当然如果你的系统core的生成规则被改过,不是默认的,那就问你的系统管理员去找到core文件。
进去后打个bt,看下当前的调用堆栈,然后再看下哪儿出的问题。
当然这样做有个前提,那就是你在编译你的程序时加了-g参数,如果没有,重新去编译下再运行。
如果还是找不出来,再把你的调用堆栈和代码发上来大家看看。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式