Perl 5.12.3 C / C ++代码在PUSHMARK(SP)中崩溃; Solaris 5.9上的分段错误

时间:2011-04-28 06:50:51

标签: c++ c perl

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

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

如果有任何人发现这个问题,请告诉我。任何找到根本原因的指针都会非常有用。

2 个答案:

答案 0 :(得分:1)

我根据我的研究结束了这个帖子。

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

答案 1 :(得分:-1)

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

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

检查您的代码。