예제 #1
0
lldb::RegisterContextSP
HistoryThread::GetRegisterContext ()
{
    RegisterContextSP rctx ;
    if (m_pcs.size() > 0)
    {
        rctx.reset (new RegisterContextHistory (*this, 0, GetProcess()->GetAddressByteSize(), m_pcs[0]));
    }
    return rctx;

}
예제 #2
0
lldb::RegisterContextSP
HistoryUnwind::DoCreateRegisterContextForFrame (StackFrame *frame)
{
    RegisterContextSP rctx;
    if (frame)
    {
        addr_t pc = frame->GetFrameCodeAddress().GetLoadAddress (&frame->GetThread()->GetProcess()->GetTarget());
        if (pc != LLDB_INVALID_ADDRESS)
        {
            rctx.reset (new RegisterContextHistory (*frame->GetThread().get(), frame->GetConcreteFrameIndex(),
                                                    frame->GetThread()->GetProcess()->GetAddressByteSize(), pc));
        }
    }
    return rctx;
}