在 Linux 上创建并使用转储文件
|
信号是操作系统和用户应用之间的进程间通讯。Linux 使用 POSIX 标准中定义的信号。在你的系统上,你可以在 /usr/include/bits/signum-generic.h 找到标准信号的定义。如果你想知道更多关于在你的应用程序中使用信号的信息,这有一个信息丰富的 signal 手册页。简单地说,Linux 基于预期的或意外的信号来触发进一步的活动。 当你退出一个正在运行的应用程序时,应用程序通常会收到 SIGTERM 信号。因为这种类型的退出信号是预期的,所以这个操作不会创建一个内存转储。 以下信号将导致创建一个转储文件(来源:GNU C库): SIGFPE:错误的算术操作 SIGILL:非法指令 SIGSEGV:对存储的无效访问 SIGBUS:总线错误 SIGABRT:程序检测到的错误,并通过调用 abort() 来报告 SIGIOT:这个信号在 Fedora 上已经过时,过去在 PDP-11 上用 abort() 时触发,现在映射到 SIGABRT 创建转储文件 导航到 core_dump_example 目录,运行 make,并使用 -c1 开关执行该示例二进制: ./coredump -c1 该应用将以状态 4 退出,带有如下错误: Dump written“Abgebrochen (Speicherabzug geschrieben) ”(LCTT 译注:这是德语,应该是因为本文作者系统是德语环境)大致翻译为“分段故障(核心转储)”。 是否创建核心转储是由运行该进程的用户的资源限制决定的。你可以用 ulimit 命令修改资源限制。 检查当前创建核心转储的设置: ulimit -c 如果它输出 unlimited,那么它使用的是(建议的)默认值。否则,用以下方法纠正限制: ulimit -c unlimited 要禁用创建核心转储,可以设置其大小为 0: ulimit -c 0 这个数字指定了核心转储文件的大小,单位是块。 (编辑:天瑞地安资讯网_保定站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 如何fsck.ext3一个TrueCrypt卷?
- mysql – 使用params在bash中执行.sql文件
- 分析|零拷贝Zero-Copy技术大公开
- linux – php-fpm:无法识别的服务
- Linux为什么干不过Windows系统?大神Linus 程序兼容太糟糕
- VMware Ubuntu 虚拟机安装 VMwareTools (VMware虚拟机如何
- java.net.ProtocolException:unexpected end of stream
- 正确的Linux串口初始化序列
- 京东大赞卡和小赞卡有什么不同 京东大赞卡和小赞卡资费对比
- VirtualBox 6.1.8推出,支持RHEL8.2和CentOS 8.2


