The C sample program works, but the existing multithreaded C ++ program is interrupted by Perl_sv_upgrade in Perl 5.16.0

Perl 5.16.0 runs C, but the existing multi-threaded program is interrupted by Perl_sv_upgrade . A multi-threaded program works fine with Perl 5.8.8. The same code works on Linux and Solaris with Perl 5.16.0.

Comparing the value of the sv argument between Linux and Hp-PA shows the sv value is NULL in the case of Hp-PA. Has anyone noticed this problem before. Please let me know?

Linux stack trace after debugging and viewing sv value:

 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 

HP-PA stack trace after looking at sv value while analyzing interrupt in gdb:

 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
source share

Source: https://habr.com/ru/post/1437813/


All Articles