blob: 0e4d7c5656bb55713ac56db8f3aed37db5721636 [file]
//===-- 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