【问题标题】:In Linux coredump found Perl segmentation faults在 Linux coredump 中发现 Perl 分段错误
【发布时间】:2019-10-22 10:49:03
【问题描述】:

我正在使用基于 Oracle Linux 6.10 的定制操作系统。我几乎没有自定义命令可以帮助查找防火墙规则、硬件信息等信息,但如果我运行这些命令,则会生成核心转储。

在我的一台 OracleLinux6.10 服务器上找到了 4 个核心文件,例如 core.top.myrole.34089.bt

以下是由 top.myrole 生成的错误“程序以信号 6 终止,已中止/没有可用的符号表信息”:

10/15/2019 13:54:57 core.top.myrole.34089.bt

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

top.myrole: No such file or directory.

Missing separate debuginfo for the main executable file

Try: yum --enablerepo='*-debug*' install

/usr/lib/debug/.build-id/81/7805fb3de3731d5c36c8f7da38040ee6d510ea

[New Thread 34090]

[New Thread 34089]

Core was generated by \top.myrole'.`

Program terminated with signal 6, Aborted.

#0 0x000000347960f00d in ?? ()

Thread 2 (Thread 34089):

#0 0x000000347960f00d in ?? ()

No symbol table info available.

#1 0x0000000000000001 in ?? ()

No symbol table info available.

在上述行之后,“无符号表”错误现在会在多个线程中重复。

然后发现在运行自定义命令“hardwareshow”时也生成了其他核心转储(此命令不是 linux 命令,但它是在我们的发行版中自定义的)。日志显示核心是由 '/usr/bin/perl /usr/product/bin/iprule show' 生成的:

10/14/2019 20:44:25, core.hardwareshow.8944.bt
warning: core file may not match specified executable file.
[New Thread 55835]
[Thread debugging using libthread_db enabled]
Core was generated by \/usr/bin/perl /usr/product/bin/iprule show--type=rule --protocol=ipv6 -'.Program terminated with signal 11, Segmentation fault.#0  0x0000003479a80829 in ?? () from /usr/lib64/perl5/CORE/libperl.so`

------------
10/14/2019 04:19:59, core.iprule.55835.bt

我检查了机器使用的Perl版本,似乎是Perl5,(仍然需要确认它是否是5.10)。我该如何解决这个问题,我从一些Perl专家那里听说Perl升级到新的版本在这里仍然可以提供帮助我希望从多个 Linux 开发人员/Perl 开发人员那里听到有关此错误的信息。

【问题讨论】:

  • 跨帖:redd.it/dlfg4j
  • 就目前而言,您的问题是“我如何调试 C 程序”,这个话题太大了。
  • 至少,你应该得到一个堆栈回溯!
  • 你说你遇到了段错误,但信号 6 在我的系统上是 SIGABRT,而不是 SIGSEGV

标签: linux perl coredump


【解决方案1】:

perl 解释器会在以下情况下进行核心转储: 其实现中存在错误;如果使用了某些病态 Perl 代码模式(例如,无限递归调用 tie 或重载处理程序);或者如果使用 C 级代码的外部模块(如 XS 模块)中存在错误。确定故障是什么可能很困难。如果您只是想让问题消失,那么将所有内容升级到更新的版本可能是阻力最小的途径。请注意,perl 5.10.0 版本大约有 12 年的历史。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    相关资源
    最近更新 更多