// i.e. only name and backtrace data is copied...
Stack<Frame> frames = new Stack<>();
Stack<IRubyObject> selfs = new Stack<>();
for (Frame cur = context.getCurrentFrame(); cur != null; ) {
Frame clone = new Frame();
clone.updateFrame(cur); // clone...
frames.push(clone);
selfs.push(context.getFrameSelf());
context.popFrame();
try {
cur = context.getCurrentFrame();