qq空间做网站,网站后台 设计,html5微网站demo,wordpress 免备案有些时候我们在一段C代码的时候#xff0c;由于对一个非法内存进行了操作#xff0c;在程序运行的过程中#xff0c;出现了段错误。呵呵#xff0c;这种问题我想很多人会经常遇到。遇到这种问题是非常无语的#xff0c;只是提示了段错误#xff… 有些时候我们在一段C代码的时候由于对一个非法内存进行了操作在程序运行的过程中出现了段错误。呵呵这种问题我想很多人会经常遇到。遇到这种问题是非常无语的只是提示了段错误接着什么都没 有如果我们一味的去看代码找太疼苦了因为我们都相信自己写的代码没问题现实就是现实。下面介绍一种方法可以有效的定位出现段错误的地方。 当我们的程序崩溃时内核有可能把该程序当前内存映射到core文件里方便程序员找到程序出现问题的地方。 什么是core dump? core的意思是内存dump的意思是扔出来堆出来。 为什么没有core文件生成呢? 有时候程序down了但是core文件却没有生成.core文件的生成跟你当前系统的环境设置有关系可以用下面的语句设置一下便生成core文件了 ulimit -c unlimited core 文件生成的位置一般于运行程序的路径相同在ubuntu下文件名一般 为core. 什么是core文件 当一个程序奔溃时在进程当前工作目录的core文件中复制了该进程的存储图像。core文件仅仅是一个内存映像(同时加上调试信息)主要用来调试的。 下面我们来看看怎样利用core文件来定位我们出现段错误的地方. 程序运行结果: 从上面我们可以看出第一次运行程序出现段错误并没有出现core文件一般linux操作系统默认core文件的大小都是0,需要手动设置一下。 调试core文件 core文件是个二进制文件需要用相应的工具来分析程序崩溃时的内存映像。 linux下可以用gdb来调试core文件 。 从上面我们可以清楚的看到我们的程序是在那个地方出现了错误。 呵呵有了这种方法我想以后我们可以不再那么惧怕段错误了。