Subject: | Occasional unreliable SEGV |
Hard to pin down why, but occasionally Device-Chip-CC1101/examples/cc1101.pl will just segv on startup:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff793bb3f in pp_leaveasync (my_perl=<optimized out>) at lib/Future/AsyncAwait.xs:1756
1756 lib/Future/AsyncAwait.xs: No such file or directory.
(gdb) bt
#0 0x00007ffff793bb3f in pp_leaveasync (my_perl=<optimized out>) at lib/Future/AsyncAwait.xs:1756
#1 0x0000555555652016 in Perl_runops_standard (my_perl=0x5555558a9260) at run.c:42
#2 0x00005555555c662c in S_run_body (oldscope=<optimized out>, my_perl=<optimized out>) at perl.c:2716
#3 perl_run (my_perl=0x5555558a9260) at perl.c:2639
#4 0x000055555559c462 in main (argc=<optimized out>, argv=<optimized out>, env=<optimized out>) at perlmain.c:127
The code in question:
1752 /* Pop extraneous stack items */
1753 while(SP > oldsp)
1754 POPs;
1755
1756 mPUSHs(ret);
1757 PUTBACK;
1758
1759 if(f)
1760 SvREFCNT_dec(f);
The `mPUSHs` call. I wonder if this is some stack pointer issue.
--
Paul Evans