LLDB mainline
|
#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 ®ister_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 ®ister_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) |
|
static |
Definition at line 177 of file DWARFLocationExpression.cpp.
References lldb_private::npdb::TranslateFPOProgramToDWARFExpression().
Referenced by lldb_private::npdb::MakeVFrameRelLocationExpression().
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().
|
static |
Definition at line 77 of file DWARFLocationExpression.cpp.
References GetIntegralTypeInfo(), lldb_private::npdb::GetTypeSizeForSimpleKind(), and IsSimpleTypeSignedInteger().
Referenced by GetIntegralTypeInfo().
|
static |
Definition at line 42 of file DWARFLocationExpression.cpp.
References lldb::eRegisterKindGeneric, lldb::eRegisterKindLLDB, GetGenericRegisterNumber(), lldb_private::npdb::GetLLDBRegisterNumber(), and LLDB_INVALID_REGNUM.
Referenced by MakeRegisterBasedLocationExpressionInternal().
|
static |
Definition at line 54 of file DWARFLocationExpression.cpp.
Referenced by GetIntegralTypeInfo().
|
static |
Definition at line 108 of file DWARFLocationExpression.cpp.
References lldb_private::Stream::eBinary, lldb::eByteOrderInvalid, lldb::eRegisterKindDWARF, lldb_private::ArchSpec::GetAddressByteSize(), lldb_private::ArchSpec::GetByteOrder(), lldb_private::StreamBuffer< N >::GetData(), lldb_private::ArchSpec::GetDataByteSize(), lldb_private::StreamBuffer< N >::GetSize(), and lldb_private::DWARFExpression::SetRegisterKind().
Referenced by lldb_private::npdb::MakeEnregisteredLocationExpressionForComposite(), lldb_private::npdb::MakeGlobalLocationExpression(), MakeRegisterBasedLocationExpressionInternal(), and lldb_private::npdb::MakeVFrameRelLocationExpression().
|
static |
Definition at line 157 of file DWARFLocationExpression.cpp.
References MakeLocationExpressionInternal(), and MakeRegisterBasedLocationExpressionInternal().
|
static |
Definition at line 132 of file DWARFLocationExpression.cpp.
References GetRegisterNumber(), LLDB_INVALID_REGNUM, lldb_private::Stream::PutHex8(), lldb_private::Stream::PutSLEB128(), and lldb_private::Stream::PutULEB128().
Referenced by lldb_private::npdb::MakeEnregisteredLocationExpression(), lldb_private::npdb::MakeEnregisteredLocationExpressionForComposite(), MakeRegisterBasedLocationExpressionInternal(), and lldb_private::npdb::MakeRegRelLocationExpression().