概述
文章目录
- 1. 问题描述
- 2. 解决方法
- 3. 解释说明
- 参考链接
1. 问题描述
在自己服务器上跑深度学习paper附带的源码(代码无问题),之前使用了Ctrl+z
强行停止,再次训练时发生**“段错误 (核心已转储)”**问题。
2. 解决方法
在终端输入:ulimit -c
命令,查看core file大小的配置情况。
- 如果输出0,则表示系统关闭了dump core。
- 在终端输入:
ulimit -c unlimited
将core文件上限设置为无限制。
注意:上述直接在命令行打开dump core的方法只对当前shell进程有效,如果想一劳永逸,可以在~/.bashrc
的最后一行加入:ulimit -c unlimited
。
3. 解释说明
core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (linux中如果内存越界会收到SIGSEGV信号,然后就会core dump)。
在程序运行的过程中,有的时候我们会遇到Segment fault(段错误)这样的错误。这种看起来比较困难,因为没有任何的栈、trace信息输出。该种类型的错误往往与指针操作相关。
ulimit -a
用来显示当前的各种用户进程限制。
Linux对于每个用户,系统限制其最大进程数,为提高性能,可以根据设备资源情况。
设置个Linux用户的最大进程数,一些需要设置为无限制:
数据段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s unlimited
我们在用ulimit -c unlimited
这个命令的时候主要是为了产生core文件,就是程序运行发行段错误时的文件。
产生**“段错误 (核心已转储)”**的原因还有很多,这只是我遇到的情况,其他情形再次遇到会继续补充。
参考链接
[1] 博客园:ubuntu段错误(核心已转储)
[2] 博客园:ulimit -c unlimited
最后
以上就是单薄烤鸡为你收集整理的Ubuntu下“Ctrl+z”强行终止代码后再次运行,发生“段错误 (核心已转储)”1. 问题描述2. 解决方法3. 解释说明参考链接的全部内容,希望文章能够帮你解决Ubuntu下“Ctrl+z”强行终止代码后再次运行,发生“段错误 (核心已转储)”1. 问题描述2. 解决方法3. 解释说明参考链接所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复