开发者社区> 问答> 正文

linux 下 segmentation fault (core dumped) 错误出在哪里

#include 
#include 
int sum;
void * runner(void * param);
int main(int argc,char * argv[])
{
pthread_t tid;
pthread_attr_t attr;
if(argc<2)
{
printf("the number of paraments shuold more than 1");
return -1;
}
if(atoi(argv[1]<0))
{
printf("the parament should be more than 0");
return -1;
}
pthread_attr_init(&attr);
pthread_create(&tid,&attr,runner,argv[1]);
pthread_attr_destroy(&attr);
pthread_join(tid,NULL);
printf("sum=%d",sum);
}
void * runner(void * param)
{
int i,upper=atoi(param);
sum=0;
for(i=0;i<=upper;i++)
sum+=i;
pthread_exit(0);
}
大神求解答
在终端./main.c 5 输入后就提示
segmentation fault (core dumped)

展开
收起
杨冬芳 2016-07-18 13:54:03 4939 0
1 条回答
写回答
取消 提交回答
  • IT从业

    直接gdb断点跟踪一下,看具体异常的代码位置,多数是指针越界等

    2019-07-17 19:57:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载