当前位置:  技术问答>linux和unix

最近频频发生 段错误,gdb最后显示Previous frame inner to this frame (corrupt stack?)的问题.

    来源: 互联网  发布时间:2016-03-17

    本文导语:  gdb -c core.xxx文件查看 有如下显示: #49 0x00000000 in ?? () #50 0x00001000 in ?? () #51 0x00000000 in ?? () #52 0x00001000 in ?? () #53 0x00000008 in ?? () #54 0x00000000 in ?? () #55 0x480381f0 in ?? () #56 0x00000000 in ?? () #57 0x480381...

gdb -c core.xxx文件查看 有如下显示:
#49 0x00000000 in ?? ()
#50 0x00001000 in ?? ()
#51 0x00000000 in ?? ()
#52 0x00001000 in ?? ()
#53 0x00000008 in ?? ()
#54 0x00000000 in ?? ()
#55 0x480381f0 in ?? ()
#56 0x00000000 in ?? ()
#57 0x480381f1 in ?? ()
#58 0x00000000 in ?? ()
#59 0x480381f1 in ?? ()
#60 0x00000000 in ?? ()
#61 0x00083be1 in ?? ()
#62 0x00000000 in ?? ()
#63 0x00737e98 in ?? ()
#64 0xbfffb384 in ?? ()
#65 0x00000001 in ?? ()
#66 0xbfffb258 in ?? ()
#67 0x0804cf21 in file2str (file=0x738780 "01") at utils.c:129
Previous frame inner to this frame (corrupt stack?)

file2str这个函数用来将文件的内容返回为一个字符串:
char* 
file2str(const char* file)
{
int fd;
int fsize; /*file size*/
struct stat sb;
char* str = NULL;

fd = open (file, O_RDONLY);
if(-1 == fd)
 {
    perror ("");         //108行
return NULL;
}
fstat (fd, &sb);
fsize = sb.st_size; 
/*获得文件大小*/

str = xnew_array (char, fsize + 1);
/*为str分配空间*/
if (!str)
  {
close (fd);
return NULL;
  }

if (fsize != read (fd, str, fsize))
  {
    xfree (str);
close (fd);
return NULL;
  }
str[fsize] = '';        //129行
close(fd);

return str;
}

除了在129行发生段错误外,有时还会在108行perror出现问题.

|
虽然在这两个地方报错,但是不一定错误就在这两个地方。

有可能在调用这个函数前,就有溢出或越界的情况。

因为perror就把不应该会出错。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求教:文件打包移植错误发生排序错误,小弟努力送分送分啦!59~~~
  • LumaQQ2006 登陆时发生未知错误,请稍后重试.
  • for循环最大支持多大的循环次数?这什么我执行10000次的时候发生了错误?
  • ORACLE安装时/tmp/orainstRoot.sh 执行发生错误
  • 运行shell脚本时发生的错误,no interpreter
  • 一个简单的makefile编译发生错误,请帮助.
  • 输入重定向后发生segmentation fault错误?
  • 菜鸟问题,import javax.servlet.* 编译时发生does not exist错误怎么办?
  • 一处插入数据时发生的错误,请帮忙解决!
  • 在内核为2.4版本下开发的程序在2.6下编译是不是很容易会发生错误?不是应该往上兼容吗?
  • 定义一个进程结构体发生错误,求助!
  • EJB (实体BEAN)部署时发生错误:请高手帮忙看看.
  • SCSI 安装 redhat 发生致命错误,求解答
  • 这种问题都会发生错误,唉我怎么有信心学下去啊,55555555555…………
  • 在安装qt-embedded发生的错误,大虾们请帮帮忙
  • linux频频发生"只读文件系统"的错误.
  • SQLserver2000 企业版 出现"进程51发生了严重的异常"错误的处理方法
  • 江湖告急:我用JBuilder编译出现了莫名奇妙的错误(而且发生在公司突然断电以后)
  • 我的Red Hat中的gnome中的任务栏在发生了一次错误后突然消失,救救我!!!!
  • 请教 : jsp文件更新时发生的错误.
  • 在solaris的机器上运行自己写的程序时发生BUS ERROR,怎么办?有的数据发生,有的不发生
  • 不能发生的问题,却发生了。有谁可以帮得了我呀?????
  • 移植pci驱动和RTL8139网卡驱动,只发生一次中断?
  • 网络数据包发生器 Hyenae
  • 内存测验发生器 Ingatan
  • 如何用代码手工实现激活事件发生
  • 怎样捕获组合框中文本发生变化的事件?
  • 不管别的了,我想请问版主:我们的贴还能恢复吗?还会有类似事件发生吗?
  • 问专家们 一个问题,为什么在中断嵌套过程中或者中断处理过程中不能发生进程的调度?
  • 如何得到关于Swing组件中的JTextField控件内数据发生变化时的方法?
  • 伪随机数发生器 gjrand


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3