4

在 Perl 5.16.0 中,示例 C 程序正在运行,但现有的多线程程序在Perl_sv_upgrade. 多线程程序在 Perl 5.8.8 中运行良好。相同的代码可以在 Linux 和 Solaris 上使用 Perl 5.16.0。

比较svLinux 和 Hp-PA 之间的参数值显示该sv值是NULL在 Hp-PA 的情况下。以前有没有人注意到这个问题。请告诉我?

调试并查看值后的 Linux 堆栈跟踪sv

Breakpoint 4, Perl_sv_upgrade (my_perl=0x14fe6400, sv=0x150317a8, new_type=SVt_PV)
    at sv.c:1140
1140    sv.c: No such file or directory.
(gdb) where
#0  Perl_sv_upgrade (my_perl=0x14fe6400, sv=0x150317a8, new_type=SVt_PV) at sv.c:1140

在分析 gdb 中的中止时看到 sv 值后的 HP-PA 堆栈跟踪:

Thread 3 (system thread 428417):

#3 signal handler called
#4 0xca9825c4 in Perl_sv_upgrade (my_perl=0x40236f10, sv=0x0, new_type=SVt_PV)
    at sv.c:1260
4

0 回答 0