28 : m_opaque_ptr(lldb_object_ptr) {}
31 : m_opaque_ptr(rhs.m_opaque_ptr) {
46 return this->
operator bool();
48SBFunction::operator bool()
const {
51 return m_opaque_ptr !=
nullptr;
57 const char *cstr =
nullptr;
67 const char *cstr =
nullptr;
77 const char *cstr =
nullptr;
99 s.Printf(
"SBFunction: id = 0x%8.8" PRIx64
", name = %s",
106 s.Printf(
"No value");
117 const char *flavor) {
122 TargetSP target_sp(target.
GetSP());
123 std::unique_lock<std::recursive_mutex> lock;
126 if (target_sp && module_sp) {
127 lock = std::unique_lock<std::recursive_mutex>(target_sp->GetAPIMutex());
128 const bool force_live_memory =
true;
130 module_sp->GetArchitecture(),
nullptr, flavor, *target_sp,
134 return sb_instructions;
160 addr->
Slide(byte_size);
172 if (variable_list_sp) {
178 return variable_sp->GetName().GetCString();
199 sb_type.
ref().
SetType(function_type->shared_from_this());
#define LLDB_INSTRUMENT_VA(...)
void SetAddress(lldb::SBSection section, lldb::addr_t offset)
void SetPtr(lldb_private::Block *lldb_object_ptr)
uint32_t GetPrologueByteSize()
const char * GetArgumentName(uint32_t arg_idx)
const char * GetMangledName() const
lldb::SBAddress GetEndAddress()
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::LanguageType GetLanguage()
void SetDisassembler(const lldb::DisassemblerSP &opaque_sp)
lldb::TargetSP GetSP() const
lldb_private::TypeImpl & ref()
Address & GetBaseAddress()
Get accessor for the base address of the range.
lldb::addr_t GetByteSize() const
Get accessor for the byte size of this range.
bool Slide(int64_t offset)
lldb::ModuleSP GetModule() const
Get accessor for the module for this address.
A class that describes a single lexical block.
lldb::VariableListSP GetBlockVariableList(bool can_create)
Get the variable list for this block only.
bool GetIsOptimized()
Get whether compiler optimizations were enabled for this compile unit.
lldb::LanguageType GetLanguage()
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, Target &target, const AddressRange &disasm_range, bool force_live_memory=false)
A class that describes a function.
const AddressRange & GetAddressRange()
ConstString GetName() const
const Mangled & GetMangled() const
Type * GetType()
Get accessor for the type that describes the function return value type, and parameter types.
uint32_t GetPrologueByteSize()
Get the size of the prologue instructions for this function.
CompileUnit * GetCompileUnit()
Get accessor for the compile unit that owns this function.
Block & GetBlock(bool can_create)
Get accessor for the block list.
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.
@ eValueTypeVariableArgument
function argument variables
lldb::user_id_t GetID() const
Get accessor for the user ID.