线程非法退出,如何产生core文件
linux9.0 + gcc3.2.2
代码如下:
#include <pthread.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void *thread(void* m)
{
char *bb = NULL;
memcpy(bb,"fdsafaf",4);
}
main()
{
pthread_t t;
pthread_attr_t at;
int ret;
int i;
i = 1;
ret = pthread_create(&t,NULL,thread,&i);
if(ret!=0)
{
printf ("Create pthread error!n");
exit (1);
}
while(1){
printf("run\n");
sleep(10);
}
}
程序运行。会退出。但不会产生core文件。
g++ -lpthread -g thread.cpp -o thread.
但如果
char *bb = NULL;
memcpy(bb,"fdsafaf",4);
放在主程序中,是可以产生的。(已经ulimit -c 100000了)
是不是还要什么编译选项啊!
谢谢啊!