最近在看 operating system ,看到pthread编程,就试了一下啊,挺简单的却出现了错误:
程序如下:
/*************************************************************
#include <pthread.h>
#include <stdio.h>
int sum;/* this data is shared by the thread(s)*/
void *runner(void *param);
int main(int argc,char *argv[])
{
pthread_t tid;
pthread_attr_t attr; /*set of thread attributes*/
if(argc!=2){
fprintf(stderr,"usage:a.out<integer value>\n");
return -1;
}
if(atoi(argv[1])<0){
fprintf(stderr,"%d must be >=0\n",atoi(argv[1]));
return -1;
}
/*get the default attributes*/
pthread_attr_init(&attr);
/*create the thread*/
pthread_create(&tid,&attr,runner,argv[1]);
/*wait fo

本文介绍了在Linux环境下进行pthread编程时遇到的Segmentation fault (core dumped)错误,以及如何理解和解决这个问题。通过分析core dump,利用gdb调试,发现错误源于程序中的内存访问。文章还详细讲解了core dump的定义、生成条件、文件命名规则,并提供了使用gdb分析core文件的步骤。
最低0.47元/天 解锁文章
682





