llvm-project/lldb/source/Plugins/Process/Utility/NativeProcessSoftwareSingleStep.h
Michał Górny 8244fc505d [lldb] [Process/FreeBSDRemote] Introduce mips64 support
Introduce mips64 support to match the legacy FreeBSD plugin. Similarly
to the legacy plugin, the code does not support FPU registers at the
moment.  The support for them will be submitted separately as it
requires changes to the register context shared by both plugins.

This also includes software single-stepping support that is moved from
the Linux plugin into a common Utility class.  The FreeBSD code also
starts explicitly ignoring EINVAL from PT_CLEARSTEP since this is easier
to implement than checking whether hardware single-stepping were used.

Differential Revision: https://reviews.llvm.org/D95802
2021-02-08 18:27:26 +01:00

32 lines
1002 B
C++

//===-- 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_NativeProcessSoftwareSingleStep_h
#define lldb_NativeProcessSoftwareSingleStep_h
#include "lldb/Host/common/NativeProcessProtocol.h"
#include "lldb/Host/common/NativeThreadProtocol.h"
#include <map>
namespace lldb_private {
class NativeProcessSoftwareSingleStep {
public:
Status SetupSoftwareSingleStepping(NativeThreadProtocol &thread);
protected:
// List of thread ids stepping with a breakpoint with the address of
// the relevan breakpoint
std::map<lldb::tid_t, lldb::addr_t> m_threads_stepping_with_breakpoint;
};
} // namespace lldb_private
#endif // #ifndef lldb_NativeProcessSoftwareSingleStep_h