使用反引号在 perl 脚本中获取核心文件

Posted

技术标签:

【中文标题】使用反引号在 perl 脚本中获取核心文件【英文标题】:get the core file in perl script with backtick 【发布时间】:2020-03-07 17:47:52 【问题描述】:

在我的 ubuntu 14.04 (Linux 3.19.0 64bit) PC 上,我运行了一个 perl 程序,该程序在循环中包含以下内容

$params = setupParams();
$ret = `SOME_CMD $params`;
...

但由于某种原因,SOME_CMD 有时会偶尔给出Segmentation fault (core dumped)。为了找出核心转储的原因,我需要获取核心文件。 不幸的是,我在运行 perl 脚本的终端上尝试了ulimit -S -c 0,但它没有生成核心文件。

任何想法将不胜感激。

【问题讨论】:

不是core文件转储到SOME_CMD的“当前工作目录”吗? unix.stackexchange.com 可能是这个问题的更好的地方,但弄清楚如何获取核心文件以调试程序也是与编程相关的,因此允许在此站点上。跨度> 【参考方案1】:

ulimit -c 0 阻止写入核心文件。你需要使用 ulimit -c unlimited

顺便说一句:您应该升级到维护的操作系统。

【讨论】:

以上是关于使用反引号在 perl 脚本中获取核心文件的主要内容,如果未能解决你的问题,请参考以下文章

Perl 的反引号/系统给出“tcsetattr:输入/输出错误”

在perl的反引号中使用chmod后导致权限的异步更改的原因

在 perl 5.8.8 中模拟反引号运算符

如何在 perl 中为反引号加载 STDIN(不写入临时文件)

Perl中的反斜杠单引号

shell 脚本中双引号 单引号 反引号 的区别