LLDB mainline
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, boolGetIntegralTypeInfo (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()

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()

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

◆ GetRegisterNumber()

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

◆ IsSimpleTypeSignedInteger()

bool IsSimpleTypeSignedInteger ( SimpleTypeKind kind)
static

Definition at line 54 of file DWARFLocationExpression.cpp.

Referenced by GetIntegralTypeInfo().

◆ MakeLocationExpressionInternal()

◆ MakeRegisterBasedLocationExpressionInternal() [1/2]

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

◆ MakeRegisterBasedLocationExpressionInternal() [2/2]