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

Reply via email to