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

问题描述

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)

解决方案

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

解决方案二:

使用gdb 读取你的coredump文件,whereis

解决方案三:

看下这篇文章:http://blog.csdn.net/qq_21792169/article/details/50809501 利用gdb追踪错误或者利用strace命令来调试

解决方案四:

atoi(argv[1]<0)

时间: 2025-01-30 15:20:59

printf-linux 下 segmentation fault (core dumped) 错误出在哪里的相关文章

linux c-Linux C 编程中segmentation fault (core dump)错误

问题描述 Linux C 编程中segmentation fault (core dump)错误 Linux C 小白,求大神指导,不胜感激.原代码在Windows下用VC++6.0编写,能正常运行,后复制到Ubuntu 12.04下,改了一部分命令,编译能通过,但在运行时报错segmentation fault (core dump).下面为代码: #include #include #include #include #include double num; int WriteDat(){

字符串统计-很奇怪的segmentation fault(core dumped)的问题。c++

问题描述 很奇怪的segmentation fault(core dumped)的问题.c++ 源代码如下,统计文件中字符串出现个数 #include #include #include #include using namespace std; int Num; int main(int argc,char *argv[]){ //参数分别是字符串和文件 int length=strlen(argv[1]); //字符串长度 ifstream ifile; ifile.open(argv[2]

c语言-求字符数目,输入字符串时显示Segmentation fault (core dumped)

问题描述 求字符数目,输入字符串时显示Segmentation fault (core dumped) int main(void){ char a[100]; printf(""please input char:n""); scanf(""%s"" &a); f(a); return 0;}void f(char *a){ int i = 0; int space = 0 line = 0 others = 0;

启动时celery worker出错”Segmentation fault” (core dumped)解决方法

在我的Ubuntu 14.04 上, 使用"celery worker"命令启动celery worker时,遇到"Segmentation fault" (core dumped),如下: jay@jay-linux:~/workspace/aew$ celery -A aew worker  代码如下 复制代码  -------------- celery@jay-linux v3.1.13 (Cipater) ---- **** ----- --- * ***

c++-Segmentation fault (core dumped)!!

问题描述 Segmentation fault (core dumped)!! C++ 三个c++文件都include了同一个头文件,那个头文件里有 static int global1 = 0; static int global2 = 0; extern someClass A; 我把这三个注释掉,代码中用到这三个变量的地方也注释掉就没问题了.. 是因为static不能同时被三个cpp文件使用吗?求大神带飞orz 解决方案 是不是访问A时出错了.要你的具体出错的位置. 解决方案二: 不是的

调试-segment fault:core dumped

问题描述 segment fault:core dumped 程序里有下面两个函数: 小文件没有问题,但是当文件达到1k行左右,会出现段错误.错误在第二个wlhile 语句的fgetc处. void next(char c,int *row,int *col) { if(c == ' ') *col = (*col + TABLEN - 1) / TABLEN * TABLEN + 1; else if(c == ' ') { cur_state.line_endpos[*row] = *col

红帽企业版Linux成为Linux下的.NET Core的参考平台

微软和红帽声明将在红帽企业版 Linux 运行的 .NET 纳入官方支持.经两家公司透露,"红帽企业级 Linux 将成为 Linux 下的.NET Core 主要参考操作系统". 来自红帽资深开发者 Harry Mower 谈到,.Net 的开源让开发者"兼顾操作系统和运行时的好处"新的可能性变为了现实.尤其是 linux 提供了节省 Windows 所需要的部分花费的绝好机会.Mower 看到的一种情况是对于开发者有明显好处的,在 Linux 中使用 .Net

linux下MYSQL常见两个错误的解决办法

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 解决方法: 1)默认的mysql.sock文件是在/tmp目录下.2)我们建立一个软连接,ln -s /tmp/mysql.sock  /var/lib/mysql/mysql.sock 问题2:Timeout error occurred trying to start MySQL Daem

Linux下调试段错误的方法[Segmentation Fault]--GDB

原文 1.段错误是什么? 段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况. A segmentation fault (often shortened to segfault) is a particular error condition that can occur during the operation of computer software. In short, a segmentation