| //===-- NativeProcessSoftwareSingleStep.h -----------------------*- C++ -*-===// | |
| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEPROCESSSOFTWARESINGLESTEP_H | |
| #define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEPROCESSSOFTWARESINGLESTEP_H | |
| #include "lldb/Host/common/NativeProcessProtocol.h" | |
| #include "lldb/Host/common/NativeThreadProtocol.h" | |
| #include <map> | |
| #include <set> | |
| namespace lldb_private { | |
| class NativeProcessSoftwareSingleStep { | |
| public: | |
| Status SetupSoftwareSingleStepping(NativeThreadProtocol &thread); | |
| protected: | |
| // List of thread ids stepping with a breakpoint with the address of | |
| // next PC candidates. | |
| std::map<lldb::tid_t, std::vector<lldb::addr_t>> | |
| m_threads_stepping_with_breakpoint; | |
| // The list of stepping breakpoints. | |
| std::set<lldb::addr_t> m_step_breakpoints; | |
| }; | |
| } // namespace lldb_private | |
| #endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEPROCESSSOFTWARESINGLESTEP_H |