inline void vframeStreamCommon::fill_from_interpreter_frame() { Method* method = _frame.interpreter_frame_method(); address bcp = _frame.interpreter_frame_bcp(); int bci = method->validate_bci_from_bcp(bcp); // 6379830 AsyncGetCallTrace sometimes feeds us wild frames. // AsyncGetCallTrace interrupts the VM asynchronously. As a result // it is possible to access an interpreter frame for which // no Java-level information is yet available (e.g., becasue // the frame was being created when the VM interrupted it). // In this scenario, pretend that the interpreter is at the point // of entering the method. if (bci < 0) { found_bad_method_frame(); bci = 0; } _mode = interpreted_mode; _method = method; _bci = bci; }