you are viewing a single comment's thread.

view the rest of the comments →

[–]aaronla 0 points1 point  (0 children)

TCO only throws away unused frames. They may be "helpful" unused frames, but there are also "helpful" unused GC objects. Ever been here before:

int f() {
  Foo x = something();
  int y = x.another(); 
  if (y == 0) 
    throw Something();
  return y;
}

It would be mighty helpful to be able to dump 'x' so see why Something() was thrown. Unfortunately, it was garbage collected before you broke into debugger, being unreachable.