On Fri, Oct 17, 2014 at 03:08:12AM -0700, Christian Bartolomaeus via RT wrote:
> Status update: Right now this is no longer a Null PMC access error on Parrot
> but we get a segfault on Moar as well:
>
> $ perl6-m -e 'my $a ($b, $c); $b = 42;'
> Segmentation fault
valgrind doesn't spot any undefined behaviour leading up to the SEGV:
==2246== Invalid read of size 8
==2246== at 0x4F57A5E: MVM_interp_run (interp.c:1226)
==2246== by 0x502FBA3: MVM_vm_run_file (moar.c:208)
==2246== by 0x40110D: main (main.c:191)
==2246== Address 0x10 is not stack'd, malloc'd or (recently) free'd
==2246==
==2246==
==2246== Process terminating with default action of signal 11 (SIGSEGV):
dumping core
==2246== Access not within mapped region at address 0x10
==2246== at 0x4F57A5E: MVM_interp_run (interp.c:1226)
==2246== by 0x502FBA3: MVM_vm_run_file (moar.c:208)
==2246== by 0x40110D: main (main.c:191)
It's this code (with line numbers):
1223 OP(assign): {
1224 MVMObject *cont = GET_REG(cur_op, 0).o;
1225 MVMObject *obj = GET_REG(cur_op, 2).o;
1226 const MVMContainerSpec *spec =
STABLE(cont)->container_spec;
1227 cur_op += 4;
1228 if (spec) {
1229 spec->store(tc, cont, obj);
1230 } else {
1231 MVM_exception_throw_adhoc(tc, "Cannot assign to an
immutable value");
1232 }
1233 goto NEXT;
I can't convince gdb to "like" the various local libraries on this machine
(local updated compiler toolchain, but not debugger), so I can't verify which
pointer is NULL.
Nicholas Clark