【问题标题】:Perl 5.12.3 C/C++ code crashes in PUSHMARK(SP) ; with segmentation fault on Solaris 5.9Perl 5.12.3 C/C++ 代码在 PUSHMARK(SP) 中崩溃;在 Solaris 5.9 上出现分段错误
【发布时间】:2011-07-27 17:34:26
【问题描述】:

我有一个 C/C++ 代码,它使用 perlcall 来调用 perl 脚本,并且正在使用 5.8.90 的 Perl 版本。由于 5.8.90 中的一些内存泄漏/堆损坏,我们计划使用最新版本的 perl 5.12.3。

在使用 5.12.3 版本的 libperl.so 时,我们的程序在调用“PUSHMARK(SP);”时崩溃了 我试图在 dbx 中调试,但只能得到以下信息 t@32 (l@32) 由信号 SEGV 终止(在故障地址处没有映射)

如果有人遇到此问题,请告诉我。任何找到根本原因的指针都会非常有帮助。

【问题讨论】:

  • 你能提供一个最小的 Sn-p 的 C/perl 代码来演示这个问题吗?另外,大概一周左右,5.14.0 将成为 perl 的最新版本。
  • Ysth - 感谢您提供的信息。实际上,在构建我的二进制文件时,我没有将新的头文件从 5.12.3 复制到正确的路径。使用新的头文件后,问题解决了。
  • 你能把它标记为已解决吗?
  • @yogishaj,您应该接受您发布的答案,以免问题显示为未解决。

标签: c++ c perl


【解决方案1】:

根据我的研究,我正在关闭线程。

Ysth - 感谢您提供的信息。实际上,在构建我的二进制文件时,我没有将新的头文件从 5.12.3 复制到正确的路径。使用新的头文件后,问题解决了。

【讨论】:

    【解决方案2】:

    如果您的程序试图访问不在程序地址空间中的内存位置,这是可能的。

    访问的内存要么属于操作系统,要么属于其他进程。

    检查您的代码。

    【讨论】:

      猜你喜欢
      • 2015-06-22
      • 2014-04-12
      • 1970-01-01
      • 1970-01-01
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      相关资源
      最近更新 更多