在 Perl 5.16.0 中,示例 C 程序正在运行,但现有的多线程程序在Perl_sv_upgrade
. 多线程程序在 Perl 5.8.8 中运行良好。相同的代码可以在 Linux 和 Solaris 上使用 Perl 5.16.0。
比较sv
Linux 和 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