#include "lldb/Expression/DWARFExpressionList.h"
#include "Plugins/SymbolFile/DWARF/DWARFUnit.h"
#include "lldb/Symbol/Function.h"
#include "lldb/Target/RegisterContext.h"
#include "lldb/Target/StackFrame.h"
#include "llvm/DebugInfo/DWARF/DWARFDebugLoc.h"
#include "llvm/DebugInfo/DWARF/DWARFFormValue.h"
usingnamespacelldb;
usingnamespacelldb_private;
bool DWARFExpressionList::IsAlwaysValidSingleExpr() const { … }
const DWARFExpression * DWARFExpressionList::GetAlwaysValidExpr() const { … }
bool DWARFExpressionList::AddExpression(addr_t base, addr_t end,
DWARFExpression expr) { … }
bool DWARFExpressionList::GetExpressionData(DataExtractor &data,
lldb::addr_t func_load_addr,
lldb::addr_t file_addr) const { … }
bool DWARFExpressionList::ContainsAddress(lldb::addr_t func_load_addr,
lldb::addr_t addr) const { … }
const DWARFExpression *
DWARFExpressionList::GetExpressionAtAddress(lldb::addr_t func_load_addr,
lldb::addr_t load_addr) const { … }
DWARFExpression *
DWARFExpressionList::GetMutableExpressionAtAddress(lldb::addr_t func_load_addr,
lldb::addr_t load_addr) { … }
bool DWARFExpressionList::ContainsThreadLocalStorage() const { … }
bool DWARFExpressionList::LinkThreadLocalStorage(
lldb::ModuleSP new_module_sp,
std::function<lldb::addr_t(lldb::addr_t file_addr)> const
&link_address_callback) { … }
bool DWARFExpressionList::MatchesOperand(
StackFrame &frame, const Instruction::Operand &operand) const { … }
bool DWARFExpressionList::DumpLocations(Stream *s, lldb::DescriptionLevel level,
lldb::addr_t func_load_addr,
lldb::addr_t file_addr,
ABI *abi) const { … }
void DWARFExpressionList::GetDescription(Stream *s,
lldb::DescriptionLevel level,
ABI *abi) const { … }
llvm::Expected<Value> DWARFExpressionList::Evaluate(
ExecutionContext *exe_ctx, RegisterContext *reg_ctx,
lldb::addr_t func_load_addr, const Value *initial_value_ptr,
const Value *object_address_ptr) const { … }