LLDB mainline
Functions
DWARFLocationExpression.cpp File Reference
#include "DWARFLocationExpression.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/Section.h"
#include "lldb/Expression/DWARFExpression.h"
#include "lldb/Utility/ArchSpec.h"
#include "lldb/Utility/DataBufferHeap.h"
#include "lldb/Utility/StreamBuffer.h"
#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/DebugInfo/CodeView/TypeDeserializer.h"
#include "llvm/DebugInfo/CodeView/TypeIndex.h"
#include "llvm/DebugInfo/PDB/Native/TpiStream.h"
#include "llvm/Support/Endian.h"
#include "PdbUtil.h"
#include "CodeViewRegisterMapping.h"
#include "PdbFPOProgramToDWARFExpression.h"
#include <optional>

Go to the source code of this file.

Functions

uint32_t GetGenericRegisterNumber (llvm::codeview::RegisterId register_id)
 
static uint32_t GetRegisterNumber (llvm::Triple::ArchType arch_type, llvm::codeview::RegisterId register_id, RegisterKind &register_kind)
 
static bool IsSimpleTypeSignedInteger (SimpleTypeKind kind)
 
static std::pair< size_t, bool > GetIntegralTypeInfo (TypeIndex ti, TpiStream &tpi)
 
template<typename StreamWriter >
static DWARFExpression MakeLocationExpressionInternal (lldb::ModuleSP module, StreamWriter &&writer)
 
static bool MakeRegisterBasedLocationExpressionInternal (Stream &stream, llvm::codeview::RegisterId reg, RegisterKind &register_kind, std::optional< int32_t > relative_offset, lldb::ModuleSP module)
 
static DWARFExpression MakeRegisterBasedLocationExpressionInternal (llvm::codeview::RegisterId reg, std::optional< int32_t > relative_offset, lldb::ModuleSP module)
 
static bool EmitVFrameEvaluationDWARFExpression (llvm::StringRef program, llvm::Triple::ArchType arch_type, Stream &stream)
 

Function Documentation

◆ EmitVFrameEvaluationDWARFExpression()

static bool EmitVFrameEvaluationDWARFExpression ( llvm::StringRef  program,
llvm::Triple::ArchType  arch_type,
Stream stream 
)
static

◆ GetGenericRegisterNumber()

uint32_t GetGenericRegisterNumber ( llvm::codeview::RegisterId  register_id)

Definition at line 35 of file DWARFLocationExpression.cpp.

References LLDB_INVALID_REGNUM, and LLDB_REGNUM_GENERIC_FP.

Referenced by GetRegisterNumber().

◆ GetIntegralTypeInfo()

static std::pair< size_t, bool > GetIntegralTypeInfo ( TypeIndex  ti,
TpiStream &  tpi 
)
static

◆ GetRegisterNumber()

static uint32_t GetRegisterNumber ( llvm::Triple::ArchType  arch_type,
llvm::codeview::RegisterId  register_id,
RegisterKind register_kind 
)
static

◆ IsSimpleTypeSignedInteger()

static bool IsSimpleTypeSignedInteger ( SimpleTypeKind  kind)
static

Definition at line 54 of file DWARFLocationExpression.cpp.

Referenced by GetIntegralTypeInfo().

◆ MakeLocationExpressionInternal()

template<typename StreamWriter >
static DWARFExpression MakeLocationExpressionInternal ( lldb::ModuleSP  module,
StreamWriter &&  writer 
)
static

◆ MakeRegisterBasedLocationExpressionInternal() [1/2]

static DWARFExpression MakeRegisterBasedLocationExpressionInternal ( llvm::codeview::RegisterId  reg,
std::optional< int32_t >  relative_offset,
lldb::ModuleSP  module 
)
static

◆ MakeRegisterBasedLocationExpressionInternal() [2/2]

static bool MakeRegisterBasedLocationExpressionInternal ( Stream stream,
llvm::codeview::RegisterId  reg,
RegisterKind register_kind,
std::optional< int32_t >  relative_offset,
lldb::ModuleSP  module 
)
static