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