ulimit用法简介

简介: ulimit用于shell启动进程所占用的资源。 -a 显示当前所有的资源限制 -s size:设置堆栈的最大值.单位:kbytes -S 设定资源的弹性限制。 -c :设定core文件的最大值,单位为区块 当系统中的一些程序在遇到一些错误以及crash时,系统会自动产生core文件记录crash时刻系统信息,包括内存和寄存器信息,用以程序员日后debug时可以使用。

ulimit用于shell启动进程所占用的资源

-a 显示当前所有的资源限制

-s size:设置堆栈的最大值.单位:kbytes

-S 设定资源的弹性限制。

-c <core文件上限>:设定core文件的最大值,单位为区块

当系统中的一些程序在遇到一些错误以及crash时,系统会自动产生core文件记录crash时刻系统信息,包括内存和寄存器信息,用以程序员日后debug时可以使用。这些错误包括段错误、非法指令、总线错误或用户自己生成的退出信息等等,一般地,core文件在当前文件夹中存放。

core文件有时可能在你发生错误时,并没有出现在你当前的文件夹中,发生这种情况的原因有两个:一个是当前终端被设置为不能弹出core文件;另一种则是core文件被指定了路径。

对于前者,我们可以使用ulimit命令对core文件的大小进行设定。一般默认情况下,core文件的大小被设置为0,这样系统就不dumpcore文件了。这时,使用命令:ulimit -c unlimited进行设置,就可以把core文件的大小设置为无限大,同时也可以使用数字来替代unlimited,对core文件的上限制做更精确的设定。

1、进行调试

gdb ./bin ./core.pid

2、线程死锁

还有就是里面某个线程停住,也没死,这种情况一般就是死锁或者涉及消息接受的超时问题(听人说的,没有遇到过)。遇到这种情况,可以使用:

gcore pid (调试进程的pid号)

手动生成core文件,在使用pstack(linux下好像不好使)查看堆栈的情况。如果都看不出来,就仔细查看代码,看看是不是在ifreturnbreakcontinue这种语句操作是忘记解锁,还有嵌套锁的问题,都需要分析清楚了。

原文:

更多关于core文件的名字的定义等信息

http://hi.baidu.com/cpuramdisk/item/0167d32b8805f787af48f5da

目录
相关文章
|
Linux Docker 容器
|
Linux 开发工具 git
FreeSWITCH小白入门之freeswitch安装篇
技术小白,今天带领大家一起freeswitch源码编译安装。我的上一篇文章已经搭建好了运行环境(centos7-Minimal),有人会说fs官方不是说在debian8下运行最稳定吗?我只能说,我个人爱好而已!
3028 0
|
SQL 存储 关系型数据库
轻松入门MySQL:深入理解MySQL日志,二进制日志、中继日志、回滚日志和重做日志(19)
轻松入门MySQL:深入理解MySQL日志,二进制日志、中继日志、回滚日志和重做日志(19)
859 0
|
5月前
|
消息中间件 缓存 算法
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
248 0
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
|
关系型数据库 MySQL
MySQL安装--Starting the sever安装失败
MySQL安装--Starting the sever安装失败
633 0
|
缓存 运维 前端开发
前端必备的运维知识点
【8月更文挑战第25天】前端必备的运维知识点
379 1
|
数据采集 SQL 安全
Minerva -- Airbnb 的大规模数据指标系统 Part 1
Minerva -- Airbnb 的大规模数据指标系统 Part 1
1176 0
Minerva -- Airbnb 的大规模数据指标系统 Part 1
|
测试技术 API Windows
Windows 如何使用 cURL 命令?快速上手
在工作流程中,为了快速验证 API 接口有效性,团队成员经常转向直接执行 cURL 命令的方法。这种做法不仅节省时间,而且促进了团队效率的提升。对于使用 Windows 系统的用户来说,这里有一套详细的操作指南来执行 cURL 命令。
|
前端开发 Java 关系型数据库
详解Mybatis之分页插件【PageHelper】
详解Mybatis之分页插件【PageHelper】
|
开发工具 git
git设置默认编辑为vim
f you want to set the editor only for Git, do either (you don’t need both): Set core.editor in your Git config: git config --global core.
2966 0