xref: /src/contrib/llvm-project/lldb/source/Plugins/Process/Utility/NativeProcessSoftwareSingleStep.h (revision d409305fa3838fb39b38c26fc085fb729b8766d5)
1d409305fSDimitry Andric //===-- NativeProcessSoftwareSingleStep.h -----------------------*- C++ -*-===//
2d409305fSDimitry Andric //
3d409305fSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4d409305fSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5d409305fSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6d409305fSDimitry Andric //
7d409305fSDimitry Andric //===----------------------------------------------------------------------===//
8d409305fSDimitry Andric 
9d409305fSDimitry Andric #ifndef lldb_NativeProcessSoftwareSingleStep_h
10d409305fSDimitry Andric #define lldb_NativeProcessSoftwareSingleStep_h
11d409305fSDimitry Andric 
12d409305fSDimitry Andric #include "lldb/Host/common/NativeProcessProtocol.h"
13d409305fSDimitry Andric #include "lldb/Host/common/NativeThreadProtocol.h"
14d409305fSDimitry Andric 
15d409305fSDimitry Andric #include <map>
16d409305fSDimitry Andric 
17d409305fSDimitry Andric namespace lldb_private {
18d409305fSDimitry Andric 
19d409305fSDimitry Andric class NativeProcessSoftwareSingleStep {
20d409305fSDimitry Andric public:
21d409305fSDimitry Andric   Status SetupSoftwareSingleStepping(NativeThreadProtocol &thread);
22d409305fSDimitry Andric 
23d409305fSDimitry Andric protected:
24d409305fSDimitry Andric   // List of thread ids stepping with a breakpoint with the address of
25d409305fSDimitry Andric   // the relevan breakpoint
26d409305fSDimitry Andric   std::map<lldb::tid_t, lldb::addr_t> m_threads_stepping_with_breakpoint;
27d409305fSDimitry Andric };
28d409305fSDimitry Andric 
29d409305fSDimitry Andric } // namespace lldb_private
30d409305fSDimitry Andric 
31d409305fSDimitry Andric #endif // #ifndef lldb_NativeProcessSoftwareSingleStep_h
32