48 return this->
operator bool();
50SBFunction::operator
bool()
const {
69 return m_opaque_ptr->GetMangled().GetDisplayDemangledName().AsCString();
78 return m_opaque_ptr->GetMangled().GetMangledName().AsCString();
88 return m_opaque_ptr->GetMangled().GetBaseName().AsCString();
107 s.Printf(
"SBFunction: id = 0x%8.8" PRIx64
", name = %s",
114 s.Printf(
"No value");
125 const char *flavor) {
131 std::unique_lock<std::recursive_mutex> lock;
133 if (target_sp && module_sp) {
134 lock = std::unique_lock<std::recursive_mutex>(target_sp->GetAPIMutex());
135 const bool force_live_memory =
true;
137 module_sp->GetArchitecture(),
nullptr, flavor,
138 target_sp->GetDisassemblyCPU(), target_sp->GetDisassemblyFeatures(),
139 *target_sp,
m_opaque_ptr->GetAddressRanges(), force_live_memory));
142 return sb_instructions;
166 if (!ranges.empty()) {
168 addr.
SetAddress(ranges.front().GetBaseAddress());
169 addr->
Slide(ranges.front().GetByteSize());
193 if (!variable_list_sp)
203 return variable_sp->GetName().GetCString();
221 sb_type.
ref().
SetType(function_type->shared_from_this());
250 return m_opaque_ptr->GetCompileUnit()->GetIsOptimized();
#define LLDB_INSTRUMENT_VA(...)
lldb_private::AddressRangeListImpl & ref() const
void SetAddress(lldb::SBSection section, lldb::addr_t offset)
void SetPtr(lldb_private::Block *lldb_object_ptr)
uint32_t GetPrologueByteSize()
const char * GetBaseName() const
const char * GetArgumentName(uint32_t arg_idx)
const char * GetMangledName() const
lldb_private::Function * m_opaque_ptr
bool GetDescription(lldb::SBStream &description)
lldb::SBAddress GetStartAddress()
const lldb::SBFunction & operator=(const lldb::SBFunction &rhs)
const char * GetDisplayName() const
lldb_private::Function * get()
lldb::SBInstructionList GetInstructions(lldb::SBTarget target)
bool operator!=(const lldb::SBFunction &rhs) const
void reset(lldb_private::Function *lldb_object_ptr)
bool operator==(const lldb::SBFunction &rhs) const
const char * GetName() const
LLDB_DEPRECATED_FIXME("Not compatible with discontinuous functions.", "GetRanges()") lldb lldb::SBAddressRangeList GetRanges()
lldb::LanguageType GetLanguage()
void SetDisassembler(const lldb::DisassemblerSP &opaque_sp)
lldb::TargetSP GetSP() const
lldb_private::TypeImpl & ref()
bool Slide(int64_t offset)
A class that describes a single lexical block.
lldb::VariableListSP GetBlockVariableList(bool can_create)
Get the variable list for this block only.
const char * AsCString(const char *value_if_empty=nullptr) const
Get the string value as a C string.
static lldb::DisassemblerSP DisassembleRange(const ArchSpec &arch, const char *plugin_name, const char *flavor, const char *cpu, const char *features, Target &target, llvm::ArrayRef< AddressRange > disasm_ranges, bool force_live_memory=false)
A class that describes a function.
AddressRanges GetAddressRanges()
void SetType(const lldb::TypeSP &type_sp)
lldb::VariableSP GetVariableAtIndex(size_t idx) const
size_t AppendVariablesWithScope(lldb::ValueType type, VariableList &var_list, bool if_unique=true)
A class that represents a running process on the host machine.
LanguageType
Programming language type.
@ eLanguageTypeUnknown
Unknown or invalid language value.
std::shared_ptr< lldb_private::VariableList > VariableListSP
std::shared_ptr< lldb_private::Variable > VariableSP
std::shared_ptr< lldb_private::Target > TargetSP
std::shared_ptr< lldb_private::Module > ModuleSP
@ eValueTypeVariableArgument
function argument variables