
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
32 lines
1002 B
C++
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
|