On Dec-11, Tanton Gibbs wrote:
> I'm still not sure what the problem is...but if you turn --gc-debug
> off, then the array diminsions are correct...e.g., 10 for the first
> dimension. Therefore, the calculation of the array index is
> performed correctly. However, with --gc-debug on, the array
> dimension is correct for the first dimension (0,0 - 0,20) as well as
> the first element of the first dimension...(1,0). But it is wrong
> for all of the others. It becomes 1 instead of 10. I have no clue
> yet why...still looking into it. However, all tests pass on Tru64 if
> --gc-debug is off.

Are the Tru64 registers scanned for live PMCs/Buffers? I don't know
what things would typically get missed that way, but it's a known
problem for most architectures (or was until recently? What's the
status on this?)

Does Tru64 have hardware breakpoints? They're nice for this sort of
thing -- find a value that eventually becomes incorrect, take the
address of it at a point when it is still correct, then watch what it
points to:

  (gdb) p interpreter->ctx.pmc_reg.registers[0]->cache.int_val
  $6 = 1
  (gdb) p &interpreter->ctx.pmc_reg.registers[0]->cache.int_val
  $7 = (INTVAL *) 0x810c904
  (gdb) watch *$7
  Hardware watchpoint 2: *$7
  (gdb) continue
  .
  .
  .

Except that the garbage collector tends to move stuff around, which
can defeat this scheme.

I doubt any of this was useful, but just in case...

Reply via email to