每次我的应用程序崩溃时,都不会生成核心转储文件.我记得几天前,它在另一台服务器上生成了was.我在bash中使用screen运行应用程序,如下所示:

#!/bin/bash
ulimit -c unlimited
while true; do ./server; done

正如你所见,如果我想生成一个核心转储,我使用的是ulimit -c unlimited,这很重要,但当我出现分段错误时,它仍然无法生成.

推荐答案

确保当前目录(崩溃时——server可能会更改目录)可写.如果服务器调用setuid,则该目录必须可由该用户写入.

同时判断/proc/sys/kernel/core_pattern.这可能会将核心转储重定向到另一个目录,并且that目录必须是可写的.更多信息here.

Linux相关问答推荐

一个bash脚本,用于基于2列映射文件替换多个文件名中的模式

通过ssh传输参数时避免字符串拆分

如何使用 sed 和 date 命令替换和格式化字符串中的日期?

+后移动下一行到当前行

如何比较 2 个文件并将第二个文件的所有行打印到输出文件 awk

使用 awk 从文件中检索一组特定的字符串

是否可以在 XTerm 或 Konsole 中使 stdout 和 stderr 输出具有不同的 colored颜色 ?

如何使用 sed debug调试正则表达式?

如何/在哪里可以找到要修复的 Linux 内核错误?

如何在 Linux 中向应用程序发出信号而不杀死它?

每次来宾重新启动后 Vagrant 执行脚本或命令(vagrant up)

需要解释 Linux bash 内置 exec 命令行为

通过写入 /dev/input/mice 来控制鼠标

在 Linux/POSIX 系统上获取用户全名的最简单方法是什么?

execv() 和 fork() 的时间浪费

如何删除 Mercurial 存储库

在 Linux 上用 C 语言读写串口

给定一个 linux 用户名和密码,我如何测试它是否是有效帐户?

Linux命令将一个文件复制到多个文件

UNIX `time` 命令对于基准测试是否足够准确?