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