예제 #1
0
void JVMState::dump() const {
    if (_map && !((uintptr_t)_map & 1)) {
        if (_map->len() > _map->req()) {  // _map->has_exceptions()
            Node* ex = _map->in(_map->req());  // _map->next_exception()
            // skip the first one; it's already being printed
            while (ex != NULL && ex->len() > ex->req()) {
                ex = ex->in(ex->req());  // ex->next_exception()
                ex->dump(1);
            }
        }
        _map->dump(2);
    }
    tty->print("JVMS depth=%d loc=%d stk=%d mon=%d end=%d mondepth=%d sp=%d bci=%d method=",
               depth(), locoff(), stkoff(), monoff(), endoff(), monitor_depth(), sp(), bci());
    if (_method == NULL) {
        tty->print_cr("(none)");
    } else {
        _method->print_name();
        tty->cr();
        if (bci() >= 0 && bci() < _method->code_size()) {
            tty->print("    bc: ");
            _method->print_codes(bci(), bci()+1);
        }
    }
    if (caller() != NULL) {
        caller()->dump();
    }
}
예제 #2
0
파일: t2.c 프로젝트: jonathangray/csrg
tableput()
{
saveline();
savefill();
ifdivert();
cleanfc();
getcomm();
getspec();
gettbl();
getstop();
checkuse();
choochar();
maktab();
runout();
release();
rstofill();
endoff();
restline();
}
예제 #3
0
//-------------------------------debug_end-------------------------------------
uint JVMState::debug_end() const {
    debug_only(JVMState* jvmroot = of_depth(1));
    assert(jvmroot->endoff() <= this->endoff(), "youngest JVMState must be last");
    return endoff();
}