forked from OSchip/llvm-project
Fix Clang-tidy modernize-use-override warnings in include/lldb/Disassembler and OperatingSystem; other minor fixes.
Second attempt which should work for MSVC. llvm-svn: 251066
This commit is contained in:
parent
e2dd2fd7c7
commit
45a4014a50
|
@ -7,8 +7,9 @@
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "DisassemblerLLVMC.h"
|
// C Includes
|
||||||
|
// C++ Includes
|
||||||
|
// Project includes
|
||||||
#include "llvm-c/Disassembler.h"
|
#include "llvm-c/Disassembler.h"
|
||||||
#include "llvm/MC/MCAsmInfo.h"
|
#include "llvm/MC/MCAsmInfo.h"
|
||||||
#include "llvm/MC/MCContext.h"
|
#include "llvm/MC/MCContext.h"
|
||||||
|
@ -25,6 +26,8 @@
|
||||||
#include "llvm/Support/TargetSelect.h"
|
#include "llvm/Support/TargetSelect.h"
|
||||||
#include "llvm/ADT/SmallString.h"
|
#include "llvm/ADT/SmallString.h"
|
||||||
|
|
||||||
|
// Other libraries and framework includes
|
||||||
|
#include "DisassemblerLLVMC.h"
|
||||||
|
|
||||||
#include "lldb/Core/Address.h"
|
#include "lldb/Core/Address.h"
|
||||||
#include "lldb/Core/DataExtractor.h"
|
#include "lldb/Core/DataExtractor.h"
|
||||||
|
@ -58,13 +61,10 @@ public:
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual
|
~InstructionLLVMC() override = default;
|
||||||
~InstructionLLVMC ()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual bool
|
bool
|
||||||
DoesBranch ()
|
DoesBranch() override
|
||||||
{
|
{
|
||||||
if (m_does_branch == eLazyBoolCalculate)
|
if (m_does_branch == eLazyBoolCalculate)
|
||||||
{
|
{
|
||||||
|
@ -100,8 +100,8 @@ public:
|
||||||
return m_does_branch == eLazyBoolYes;
|
return m_does_branch == eLazyBoolYes;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool
|
bool
|
||||||
HasDelaySlot ()
|
HasDelaySlot() override
|
||||||
{
|
{
|
||||||
if (m_has_delay_slot == eLazyBoolCalculate)
|
if (m_has_delay_slot == eLazyBoolCalculate)
|
||||||
{
|
{
|
||||||
|
@ -155,10 +155,10 @@ public:
|
||||||
return llvm_disasm.m_disasm_ap.get();
|
return llvm_disasm.m_disasm_ap.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual size_t
|
size_t
|
||||||
Decode (const lldb_private::Disassembler &disassembler,
|
Decode(const lldb_private::Disassembler &disassembler,
|
||||||
const lldb_private::DataExtractor &data,
|
const lldb_private::DataExtractor &data,
|
||||||
lldb::offset_t data_offset)
|
lldb::offset_t data_offset) override
|
||||||
{
|
{
|
||||||
// All we have to do is read the opcode which can be easy for some
|
// All we have to do is read the opcode which can be easy for some
|
||||||
// architectures
|
// architectures
|
||||||
|
@ -272,8 +272,8 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void
|
void
|
||||||
CalculateMnemonicOperandsAndComment (const lldb_private::ExecutionContext *exe_ctx)
|
CalculateMnemonicOperandsAndComment(const lldb_private::ExecutionContext *exe_ctx) override
|
||||||
{
|
{
|
||||||
DataExtractor data;
|
DataExtractor data;
|
||||||
const AddressClass address_class = GetAddressClass ();
|
const AddressClass address_class = GetAddressClass ();
|
||||||
|
@ -452,8 +452,6 @@ protected:
|
||||||
bool m_using_file_addr;
|
bool m_using_file_addr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DisassemblerLLVMC::LLVMCDisassembler::LLVMCDisassembler (const char *triple, const char *cpu, const char *features_str, unsigned flavor, DisassemblerLLVMC &owner):
|
DisassemblerLLVMC::LLVMCDisassembler::LLVMCDisassembler (const char *triple, const char *cpu, const char *features_str, unsigned flavor, DisassemblerLLVMC &owner):
|
||||||
m_is_valid(true)
|
m_is_valid(true)
|
||||||
{
|
{
|
||||||
|
@ -521,9 +519,7 @@ DisassemblerLLVMC::LLVMCDisassembler::LLVMCDisassembler (const char *triple, con
|
||||||
m_is_valid = false;
|
m_is_valid = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
DisassemblerLLVMC::LLVMCDisassembler::~LLVMCDisassembler()
|
DisassemblerLLVMC::LLVMCDisassembler::~LLVMCDisassembler() = default;
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
uint64_t
|
uint64_t
|
||||||
DisassemblerLLVMC::LLVMCDisassembler::GetMCInst (const uint8_t *opcode_data,
|
DisassemblerLLVMC::LLVMCDisassembler::GetMCInst (const uint8_t *opcode_data,
|
||||||
|
@ -587,38 +583,6 @@ DisassemblerLLVMC::LLVMCDisassembler::HasDelaySlot (llvm::MCInst &mc_inst)
|
||||||
return m_instr_info_ap->get(mc_inst.getOpcode()).hasDelaySlot();
|
return m_instr_info_ap->get(mc_inst.getOpcode()).hasDelaySlot();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
DisassemblerLLVMC::FlavorValidForArchSpec (const lldb_private::ArchSpec &arch, const char *flavor)
|
|
||||||
{
|
|
||||||
llvm::Triple triple = arch.GetTriple();
|
|
||||||
if (flavor == NULL || strcmp (flavor, "default") == 0)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
if (triple.getArch() == llvm::Triple::x86 || triple.getArch() == llvm::Triple::x86_64)
|
|
||||||
{
|
|
||||||
if (strcmp (flavor, "intel") == 0 || strcmp (flavor, "att") == 0)
|
|
||||||
return true;
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Disassembler *
|
|
||||||
DisassemblerLLVMC::CreateInstance (const ArchSpec &arch, const char *flavor)
|
|
||||||
{
|
|
||||||
if (arch.GetTriple().getArch() != llvm::Triple::UnknownArch)
|
|
||||||
{
|
|
||||||
std::unique_ptr<DisassemblerLLVMC> disasm_ap (new DisassemblerLLVMC(arch, flavor));
|
|
||||||
|
|
||||||
if (disasm_ap.get() && disasm_ap->IsValid())
|
|
||||||
return disasm_ap.release();
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
DisassemblerLLVMC::DisassemblerLLVMC (const ArchSpec &arch, const char *flavor_string) :
|
DisassemblerLLVMC::DisassemblerLLVMC (const ArchSpec &arch, const char *flavor_string) :
|
||||||
Disassembler(arch, flavor_string),
|
Disassembler(arch, flavor_string),
|
||||||
m_exe_ctx (NULL),
|
m_exe_ctx (NULL),
|
||||||
|
@ -782,8 +746,19 @@ DisassemblerLLVMC::DisassemblerLLVMC (const ArchSpec &arch, const char *flavor_s
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DisassemblerLLVMC::~DisassemblerLLVMC()
|
DisassemblerLLVMC::~DisassemblerLLVMC() = default;
|
||||||
|
|
||||||
|
Disassembler *
|
||||||
|
DisassemblerLLVMC::CreateInstance (const ArchSpec &arch, const char *flavor)
|
||||||
{
|
{
|
||||||
|
if (arch.GetTriple().getArch() != llvm::Triple::UnknownArch)
|
||||||
|
{
|
||||||
|
std::unique_ptr<DisassemblerLLVMC> disasm_ap (new DisassemblerLLVMC(arch, flavor));
|
||||||
|
|
||||||
|
if (disasm_ap.get() && disasm_ap->IsValid())
|
||||||
|
return disasm_ap.release();
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t
|
size_t
|
||||||
|
@ -888,6 +863,24 @@ const char *DisassemblerLLVMC::SymbolLookupCallback (void *disassembler,
|
||||||
name);
|
name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
DisassemblerLLVMC::FlavorValidForArchSpec (const lldb_private::ArchSpec &arch, const char *flavor)
|
||||||
|
{
|
||||||
|
llvm::Triple triple = arch.GetTriple();
|
||||||
|
if (flavor == NULL || strcmp (flavor, "default") == 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (triple.getArch() == llvm::Triple::x86 || triple.getArch() == llvm::Triple::x86_64)
|
||||||
|
{
|
||||||
|
if (strcmp (flavor, "intel") == 0 || strcmp (flavor, "att") == 0)
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
int DisassemblerLLVMC::OpInfo (uint64_t PC,
|
int DisassemblerLLVMC::OpInfo (uint64_t PC,
|
||||||
uint64_t Offset,
|
uint64_t Offset,
|
||||||
uint64_t Size,
|
uint64_t Size,
|
||||||
|
|
|
@ -10,10 +10,20 @@
|
||||||
#ifndef liblldb_DisassemblerLLVMC_h_
|
#ifndef liblldb_DisassemblerLLVMC_h_
|
||||||
#define liblldb_DisassemblerLLVMC_h_
|
#define liblldb_DisassemblerLLVMC_h_
|
||||||
|
|
||||||
|
// C Includes
|
||||||
|
// C++ Includes
|
||||||
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
// Other libraries and framework includes
|
||||||
#include "llvm-c/Disassembler.h"
|
#include "llvm-c/Disassembler.h"
|
||||||
|
|
||||||
|
// Project includes
|
||||||
|
#include "lldb/Core/Address.h"
|
||||||
|
#include "lldb/Core/Disassembler.h"
|
||||||
|
#include "lldb/Core/PluginManager.h"
|
||||||
|
#include "lldb/Host/Mutex.h"
|
||||||
|
|
||||||
// Opaque references to C++ Objects in LLVM's MC.
|
// Opaque references to C++ Objects in LLVM's MC.
|
||||||
namespace llvm
|
namespace llvm
|
||||||
{
|
{
|
||||||
|
@ -25,12 +35,7 @@ namespace llvm
|
||||||
class MCInstPrinter;
|
class MCInstPrinter;
|
||||||
class MCAsmInfo;
|
class MCAsmInfo;
|
||||||
class MCSubtargetInfo;
|
class MCSubtargetInfo;
|
||||||
}
|
} // namespace llvm
|
||||||
|
|
||||||
#include "lldb/Core/Address.h"
|
|
||||||
#include "lldb/Core/Disassembler.h"
|
|
||||||
#include "lldb/Core/PluginManager.h"
|
|
||||||
#include "lldb/Host/Mutex.h"
|
|
||||||
|
|
||||||
class InstructionLLVMC;
|
class InstructionLLVMC;
|
||||||
|
|
||||||
|
@ -67,6 +72,10 @@ class DisassemblerLLVMC : public lldb_private::Disassembler
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
DisassemblerLLVMC(const lldb_private::ArchSpec &arch, const char *flavor /* = NULL */);
|
||||||
|
|
||||||
|
~DisassemblerLLVMC() override;
|
||||||
|
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
// Static Functions
|
// Static Functions
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
|
@ -82,33 +91,28 @@ public:
|
||||||
static lldb_private::Disassembler *
|
static lldb_private::Disassembler *
|
||||||
CreateInstance(const lldb_private::ArchSpec &arch, const char *flavor);
|
CreateInstance(const lldb_private::ArchSpec &arch, const char *flavor);
|
||||||
|
|
||||||
DisassemblerLLVMC(const lldb_private::ArchSpec &arch, const char *flavor /* = NULL */);
|
size_t
|
||||||
|
DecodeInstructions(const lldb_private::Address &base_addr,
|
||||||
virtual
|
|
||||||
~DisassemblerLLVMC();
|
|
||||||
|
|
||||||
virtual size_t
|
|
||||||
DecodeInstructions (const lldb_private::Address &base_addr,
|
|
||||||
const lldb_private::DataExtractor& data,
|
const lldb_private::DataExtractor& data,
|
||||||
lldb::offset_t data_offset,
|
lldb::offset_t data_offset,
|
||||||
size_t num_instructions,
|
size_t num_instructions,
|
||||||
bool append,
|
bool append,
|
||||||
bool data_from_file);
|
bool data_from_file) override;
|
||||||
|
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
// PluginInterface protocol
|
// PluginInterface protocol
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
virtual lldb_private::ConstString
|
lldb_private::ConstString
|
||||||
GetPluginName();
|
GetPluginName() override;
|
||||||
|
|
||||||
virtual uint32_t
|
uint32_t
|
||||||
GetPluginVersion();
|
GetPluginVersion() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
friend class InstructionLLVMC;
|
friend class InstructionLLVMC;
|
||||||
|
|
||||||
virtual bool
|
bool
|
||||||
FlavorValidForArchSpec (const lldb_private::ArchSpec &arch, const char *flavor);
|
FlavorValidForArchSpec(const lldb_private::ArchSpec &arch, const char *flavor) override;
|
||||||
|
|
||||||
bool
|
bool
|
||||||
IsValid()
|
IsValid()
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//===-- OperatingSystemGo.cpp --------------------------------*- C++ -*-===//
|
//===-- OperatingSystemGo.cpp -----------------------------------*- C++ -*-===//
|
||||||
//
|
//
|
||||||
// The LLVM Compiler Infrastructure
|
// The LLVM Compiler Infrastructure
|
||||||
//
|
//
|
||||||
|
@ -6,13 +6,15 @@
|
||||||
// License. See LICENSE.TXT for details.
|
// License. See LICENSE.TXT for details.
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
#include "OperatingSystemGo.h"
|
|
||||||
|
|
||||||
// C Includes
|
// C Includes
|
||||||
// C++ Includes
|
// C++ Includes
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
|
||||||
// Other libraries and framework includes
|
// Other libraries and framework includes
|
||||||
|
// Project includes
|
||||||
|
#include "OperatingSystemGo.h"
|
||||||
|
|
||||||
#include "lldb/Core/DataBufferHeap.h"
|
#include "lldb/Core/DataBufferHeap.h"
|
||||||
#include "lldb/Core/Debugger.h"
|
#include "lldb/Core/Debugger.h"
|
||||||
#include "lldb/Core/Module.h"
|
#include "lldb/Core/Module.h"
|
||||||
|
@ -56,13 +58,7 @@ enum
|
||||||
|
|
||||||
class PluginProperties : public Properties
|
class PluginProperties : public Properties
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static ConstString
|
|
||||||
GetSettingName()
|
|
||||||
{
|
|
||||||
return OperatingSystemGo::GetPluginNameStatic();
|
|
||||||
}
|
|
||||||
|
|
||||||
PluginProperties()
|
PluginProperties()
|
||||||
: Properties()
|
: Properties()
|
||||||
{
|
{
|
||||||
|
@ -70,7 +66,13 @@ class PluginProperties : public Properties
|
||||||
m_collection_sp->Initialize(g_properties);
|
m_collection_sp->Initialize(g_properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~PluginProperties() {}
|
~PluginProperties() override = default;
|
||||||
|
|
||||||
|
static ConstString
|
||||||
|
GetSettingName()
|
||||||
|
{
|
||||||
|
return OperatingSystemGo::GetPluginNameStatic();
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
GetEnableGoroutines()
|
GetEnableGoroutines()
|
||||||
|
@ -100,10 +102,7 @@ GetGlobalPluginProperties()
|
||||||
|
|
||||||
class RegisterContextGo : public RegisterContextMemory
|
class RegisterContextGo : public RegisterContextMemory
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
//------------------------------------------------------------------
|
|
||||||
// Constructors and Destructors
|
|
||||||
//------------------------------------------------------------------
|
|
||||||
RegisterContextGo(lldb_private::Thread &thread, uint32_t concrete_frame_idx, DynamicRegisterInfo ®_info,
|
RegisterContextGo(lldb_private::Thread &thread, uint32_t concrete_frame_idx, DynamicRegisterInfo ®_info,
|
||||||
lldb::addr_t reg_data_addr)
|
lldb::addr_t reg_data_addr)
|
||||||
: RegisterContextMemory(thread, concrete_frame_idx, reg_info, reg_data_addr)
|
: RegisterContextMemory(thread, concrete_frame_idx, reg_info, reg_data_addr)
|
||||||
|
@ -118,10 +117,11 @@ class RegisterContextGo : public RegisterContextMemory
|
||||||
m_reg_data.SetData(reg_data_sp);
|
m_reg_data.SetData(reg_data_sp);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~RegisterContextGo() {}
|
~RegisterContextGo() override = default;
|
||||||
|
|
||||||
virtual bool
|
bool
|
||||||
ReadRegister(const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue ®_value)
|
ReadRegister(const lldb_private::RegisterInfo *reg_info,
|
||||||
|
lldb_private::RegisterValue ®_value) override
|
||||||
{
|
{
|
||||||
switch (reg_info->kinds[eRegisterKindGeneric])
|
switch (reg_info->kinds[eRegisterKindGeneric])
|
||||||
{
|
{
|
||||||
|
@ -134,8 +134,9 @@ class RegisterContextGo : public RegisterContextMemory
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool
|
bool
|
||||||
WriteRegister(const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue ®_value)
|
WriteRegister(const lldb_private::RegisterInfo *reg_info,
|
||||||
|
const lldb_private::RegisterValue ®_value) override
|
||||||
{
|
{
|
||||||
switch (reg_info->kinds[eRegisterKindGeneric])
|
switch (reg_info->kinds[eRegisterKindGeneric])
|
||||||
{
|
{
|
||||||
|
@ -147,11 +148,11 @@ class RegisterContextGo : public RegisterContextMemory
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DISALLOW_COPY_AND_ASSIGN(RegisterContextGo);
|
DISALLOW_COPY_AND_ASSIGN(RegisterContextGo);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // anonymous namespace
|
||||||
|
|
||||||
struct OperatingSystemGo::Goroutine
|
struct OperatingSystemGo::Goroutine
|
||||||
{
|
{
|
||||||
|
@ -219,6 +220,14 @@ OperatingSystemGo::CreateInstance(Process *process, bool force)
|
||||||
return new OperatingSystemGo(process);
|
return new OperatingSystemGo(process);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OperatingSystemGo::OperatingSystemGo(lldb_private::Process *process)
|
||||||
|
: OperatingSystem(process)
|
||||||
|
, m_reginfo(new DynamicRegisterInfo)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
OperatingSystemGo::~OperatingSystemGo() = default;
|
||||||
|
|
||||||
ConstString
|
ConstString
|
||||||
OperatingSystemGo::GetPluginNameStatic()
|
OperatingSystemGo::GetPluginNameStatic()
|
||||||
{
|
{
|
||||||
|
@ -232,16 +241,6 @@ OperatingSystemGo::GetPluginDescriptionStatic()
|
||||||
return "Operating system plug-in that reads runtime data-structures for goroutines.";
|
return "Operating system plug-in that reads runtime data-structures for goroutines.";
|
||||||
}
|
}
|
||||||
|
|
||||||
OperatingSystemGo::OperatingSystemGo(lldb_private::Process *process)
|
|
||||||
: OperatingSystem(process)
|
|
||||||
, m_reginfo(new DynamicRegisterInfo)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
OperatingSystemGo::~OperatingSystemGo()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
OperatingSystemGo::Init(ThreadList &threads)
|
OperatingSystemGo::Init(ThreadList &threads)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,24 +1,32 @@
|
||||||
//===-- OperatingSystemGo.h ----------------------------------*- C++ -*-===//
|
//===-- OperatingSystemGo.h -------------------------------------*- C++ -*-===//
|
||||||
//
|
//
|
||||||
// The LLVM Compiler Infrastructure
|
// The LLVM Compiler Infrastructure
|
||||||
//
|
//
|
||||||
// This file is distributed under the University of Illinois Open Source
|
// This file is distributed under the University of Illinois Open Source
|
||||||
// License. See LICENSE.TXT for details.
|
// License. See LICENSE.TXT for details.
|
||||||
//
|
//
|
||||||
//===-------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#ifndef _liblldb_OperatingSystemGo_h_
|
#ifndef _liblldb_OperatingSystemGo_h_
|
||||||
#define _liblldb_OperatingSystemGo_h_
|
#define _liblldb_OperatingSystemGo_h_
|
||||||
|
|
||||||
#include <iostream>
|
// C Includes
|
||||||
|
// C++ Includes
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
// Other libraries and framework includes
|
||||||
|
// Project includes
|
||||||
#include "lldb/Target/OperatingSystem.h"
|
#include "lldb/Target/OperatingSystem.h"
|
||||||
|
|
||||||
class DynamicRegisterInfo;
|
class DynamicRegisterInfo;
|
||||||
|
|
||||||
class OperatingSystemGo : public lldb_private::OperatingSystem
|
class OperatingSystemGo : public lldb_private::OperatingSystem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
OperatingSystemGo(lldb_private::Process *process);
|
||||||
|
|
||||||
|
~OperatingSystemGo() override;
|
||||||
|
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
// Static Functions
|
// Static Functions
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
|
@ -34,39 +42,33 @@ class OperatingSystemGo : public lldb_private::OperatingSystem
|
||||||
|
|
||||||
static const char *GetPluginDescriptionStatic();
|
static const char *GetPluginDescriptionStatic();
|
||||||
|
|
||||||
//------------------------------------------------------------------
|
|
||||||
// Class Methods
|
|
||||||
//------------------------------------------------------------------
|
|
||||||
OperatingSystemGo(lldb_private::Process *process);
|
|
||||||
|
|
||||||
virtual ~OperatingSystemGo();
|
|
||||||
|
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
// lldb_private::PluginInterface Methods
|
// lldb_private::PluginInterface Methods
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
virtual lldb_private::ConstString GetPluginName();
|
lldb_private::ConstString GetPluginName() override;
|
||||||
|
|
||||||
virtual uint32_t GetPluginVersion();
|
uint32_t GetPluginVersion() override;
|
||||||
|
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
// lldb_private::OperatingSystem Methods
|
// lldb_private::OperatingSystem Methods
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
virtual bool UpdateThreadList(lldb_private::ThreadList &old_thread_list, lldb_private::ThreadList &real_thread_list,
|
bool UpdateThreadList(lldb_private::ThreadList &old_thread_list,
|
||||||
lldb_private::ThreadList &new_thread_list);
|
lldb_private::ThreadList &real_thread_list,
|
||||||
|
lldb_private::ThreadList &new_thread_list) override;
|
||||||
|
|
||||||
virtual void ThreadWasSelected(lldb_private::Thread *thread);
|
void ThreadWasSelected(lldb_private::Thread *thread) override;
|
||||||
|
|
||||||
virtual lldb::RegisterContextSP CreateRegisterContextForThread(lldb_private::Thread *thread,
|
lldb::RegisterContextSP CreateRegisterContextForThread(lldb_private::Thread *thread,
|
||||||
lldb::addr_t reg_data_addr);
|
lldb::addr_t reg_data_addr) override;
|
||||||
|
|
||||||
virtual lldb::StopInfoSP CreateThreadStopReason(lldb_private::Thread *thread);
|
lldb::StopInfoSP CreateThreadStopReason(lldb_private::Thread *thread) override;
|
||||||
|
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
// Method for lazy creation of threads on demand
|
// Method for lazy creation of threads on demand
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
virtual lldb::ThreadSP CreateThread(lldb::tid_t tid, lldb::addr_t context);
|
lldb::ThreadSP CreateThread(lldb::tid_t tid, lldb::addr_t context) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct Goroutine;
|
struct Goroutine;
|
||||||
|
|
||||||
static lldb::ValueObjectSP FindGlobal(lldb::TargetSP target, const char *name);
|
static lldb::ValueObjectSP FindGlobal(lldb::TargetSP target, const char *name);
|
||||||
|
@ -82,4 +84,4 @@ class OperatingSystemGo : public lldb_private::OperatingSystem
|
||||||
lldb::ValueObjectSP m_allglen_sp;
|
lldb::ValueObjectSP m_allglen_sp;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // #ifndef liblldb_OperatingSystemGo_h_
|
#endif // liblldb_OperatingSystemGo_h_
|
||||||
|
|
Loading…
Reference in New Issue