| // Copyright 2020 The Fuchsia Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "src/developer/debug/debug_agent/general_registers.h" | |
| #include "src/developer/debug/debug_agent/arch.h" | |
| namespace debug_agent { | |
| void GeneralRegisters::CopyTo(std::vector<debug::RegisterValue>& dest) const { | |
| arch::SaveGeneralRegs(regs_, dest); | |
| } | |
| std::optional<uint64_t> GeneralRegisters::GetRegister(const debug::RegisterID reg_id) const { | |
| std::vector<debug::RegisterValue> reg_vect; | |
| CopyTo(reg_vect); | |
| for (const auto& reg : reg_vect) { | |
| if (reg.id == reg_id) { | |
| return std::optional<uint64_t>(static_cast<uint64_t>(reg.GetValue())); | |
| } | |
| } | |
| return std::nullopt; | |
| } | |
| } // namespace debug_agent |