
Introduce a FreeBSDKernel plugin that provides the ability to read FreeBSD kernel core dumps. The plugin utilizes libfbsdvmcore to provide support for both "full memory dump" and minidump formats across variety of architectures supported by FreeBSD. It provides the ability to read kernel memory, as well as the crashed thread status with registers on arm64, i386 and x86_64. Differential Revision: https://reviews.llvm.org/D114911
42 lines
1.4 KiB
C++
42 lines
1.4 KiB
C++
//===-- RegisterContextFreeBSDKernel_i386.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_FREEBSDKERNEL_REGISTERCONTEXTFREEBSDKERNEL_I386_H
|
|
#define LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_REGISTERCONTEXTFREEBSDKERNEL_I386_H
|
|
|
|
#include "Plugins/Process/Utility/RegisterContextPOSIX_x86.h"
|
|
#include "Plugins/Process/elf-core/RegisterUtilities.h"
|
|
|
|
class RegisterContextFreeBSDKernel_i386 : public RegisterContextPOSIX_x86 {
|
|
public:
|
|
RegisterContextFreeBSDKernel_i386(
|
|
lldb_private::Thread &thread,
|
|
lldb_private::RegisterInfoInterface *register_info,
|
|
lldb::addr_t pcb_addr);
|
|
|
|
bool ReadRegister(const lldb_private::RegisterInfo *reg_info,
|
|
lldb_private::RegisterValue &value) override;
|
|
|
|
bool WriteRegister(const lldb_private::RegisterInfo *reg_info,
|
|
const lldb_private::RegisterValue &value) override;
|
|
|
|
protected:
|
|
bool ReadGPR() override;
|
|
|
|
bool ReadFPR() override;
|
|
|
|
bool WriteGPR() override;
|
|
|
|
bool WriteFPR() override;
|
|
|
|
private:
|
|
lldb::addr_t m_pcb_addr;
|
|
};
|
|
|
|
#endif // LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_REGISTERCONTEXTFREEBSDKERNEL_I386_H
|