size_t EmulateInstruction::ReadMemoryFrame(EmulateInstruction *instruction, void *baton, const Context &context, lldb::addr_t addr, void *dst, size_t dst_len) { if (baton == nullptr || dst == nullptr || dst_len == 0) return 0; StackFrame *frame = (StackFrame *)baton; ProcessSP process_sp(frame->CalculateProcess()); if (process_sp) { Status error; return process_sp->ReadMemory(addr, dst, dst_len, error); } return 0; }
size_t EmulateInstruction::WriteMemoryFrame(EmulateInstruction *instruction, void *baton, const Context &context, lldb::addr_t addr, const void *src, size_t src_len) { if (baton == nullptr || src == nullptr || src_len == 0) return 0; StackFrame *frame = (StackFrame *)baton; ProcessSP process_sp(frame->CalculateProcess()); if (process_sp) { Status error; return process_sp->WriteMemory(addr, src, src_len, error); } return 0; }