9#ifndef LLDB_SYMBOL_SYMBOL_H
10#define LLDB_SYMBOL_SYMBOL_H
19#include "llvm/Support/JSON.h"
26 std::optional<uint64_t>
size;
27 std::optional<uint64_t>
id;
28 std::optional<lldb::SymbolType>
type;
40 bool external,
bool is_debug,
bool is_trampoline,
bool is_artificial,
43 bool contains_linker_annotations, uint32_t flags);
46 bool external,
bool is_debug,
bool is_trampoline,
bool is_artificial,
48 bool contains_linker_annotations, uint32_t flags);
180 std::optional<Stream::HighlightSettings> settings = std::nullopt)
const;
253 bool prefer_file_cache);
256 bool prefer_file_cache,
Stream &strm);
261 return "___lldb_unnamed_symbol";
355 llvm::json::Path path);
358 llvm::json::Path path);
A section + offset based address range class.
Address & GetBaseAddress()
Get accessor for the base address of the range.
void SetByteSize(lldb::addr_t byte_size)
Set accessor for the byte size of this range.
A section + offset based address class.
lldb::addr_t GetFileAddress() const
Get the file address.
lldb::addr_t GetOffset() const
Get the section relative offset value.
Many cache files require string tables to store data efficiently.
A uniqued constant string class.
An binary data encoding class.
"lldb/Target/ExecutionContext.h" A class that contains an execution context.
A class that handles mangled names.
lldb::LanguageType GuessLanguage() const
Try to guess the language from the mangling.
A collection class for Module objects.
A stream class that can stream formatted output to a file.
Many cache files require string tables to store data efficiently.
"lldb/Symbol/SymbolContextScope.h" Inherit from this if your object is part of a symbol context and c...
Defines a symbol context baton that can be handed other debug core functions.
bool Decode(const DataExtractor &data, lldb::offset_t *offset_ptr, const SectionList *section_list, const StringTableReader &strtab)
Decode a serialized version of this object from data.
uint32_t GetSiblingIndex() const
uint64_t GetIntegerValue(uint64_t fail_value=0) const
lldb::addr_t GetLoadAddress(Target *target) const
bool ValueIsAddress() const
uint16_t m_type_data_resolved
void SetReExportedSymbolName(ConstString name)
void SetType(lldb::SymbolType type)
void SetSizeIsSynthesized(bool b)
void SetSizeIsSibling(bool b)
void CalculateSymbolContext(SymbolContext *sc) override
Reconstruct the object's symbol context into sc.
void SynthesizeNameIfNeeded() const
const char * GetTypeAsString() const
Symbol * ResolveReExportedSymbolInModuleSpec(Target &target, ConstString &reexport_name, lldb_private::ModuleSpec &module_spec, lldb_private::ModuleList &seen_modules) const
uint16_t m_demangled_is_synthesized
lldb::DisassemblerSP GetInstructions(const ExecutionContext &exe_ctx, const char *flavor, bool prefer_file_cache)
bool ContainsLinkerAnnotations() const
lldb::addr_t GetFileAddress() const
void DumpSymbolContext(Stream *s) override
Dump the object's symbol context to the stream s.
lldb::ModuleSP CalculateSymbolContextModule() override
bool ContainsFileAddress(lldb::addr_t file_addr) const
bool GetDemangledNameIsSynthesized() const
bool GetByteSizeIsValid() const
uint16_t m_contains_linker_annotations
lldb::LanguageType GetLanguage() const
bool IsTrampoline() const
Address & GetAddressRef()
const Symbol & operator=(const Symbol &rhs)
void SetContainsLinkerAnnotations(bool b)
bool IsSyntheticWithAutoGeneratedName() const
void Encode(DataEncoder &encoder, ConstStringTable &strtab) const
Encode this object into a data encoder object.
uint32_t GetFlags() const
bool GetSizeIsSibling() const
const Mangled & GetMangled() const
ConstString GetReExportedSymbolName() const
bool Compare(ConstString name, lldb::SymbolType type) const
bool SetReExportedSymbolSharedLibrary(const FileSpec &fspec)
void GetDescription(Stream *s, lldb::DescriptionLevel level, Target *target, std::optional< Stream::HighlightSettings > settings=std::nullopt) const
bool operator==(const Symbol &rhs) const
static llvm::StringRef GetSyntheticSymbolPrefix()
lldb::addr_t GetByteSize() const
ConstString GetName() const
lldb::SymbolType GetType() const
void SetFlags(uint32_t flags)
Address GetAddress() const
AddressRange m_addr_range
ConstString GetNameNoArguments() const
uint16_t m_size_is_sibling
Symbol * ResolveReExportedSymbol(Target &target) const
FileSpec GetReExportedSymbolSharedLibrary() const
void SetIsSynthetic(bool b)
bool GetSizeIsSynthesized() const
void SetByteSize(lldb::addr_t size)
uint32_t GetPrologueByteSize()
void SetDemangledNameIsSynthesized(bool b)
ConstString GetDisplayName() const
bool GetDisassembly(const ExecutionContext &exe_ctx, const char *flavor, bool prefer_file_cache, Stream &strm)
lldb::addr_t ResolveCallableAddress(Target &target) const
uint16_t m_size_is_synthesized
Symbol * CalculateSymbolContextSymbol() override
uint64_t GetRawValue() const
Get the raw value of the symbol from the symbol table.
const Address & GetAddressRef() const
static llvm::Expected< Symbol > FromJSON(const JSONSymbol &symbol, SectionList *section_list)
void Dump(Stream *s, Target *target, uint32_t index, Mangled::NamePreference name_preference=Mangled::ePreferDemangled) const
A class that represents a running process on the host machine.
DescriptionLevel
Description levels for "void GetDescription(Stream *, DescriptionLevel)" calls.
LanguageType
Programming language type.
std::shared_ptr< lldb_private::Disassembler > DisassemblerSP
std::shared_ptr< lldb_private::Section > SectionSP
std::shared_ptr< lldb_private::Module > ModuleSP
bool fromJSON(const llvm::json::Value &value, lldb_private::JSONSection §ion, llvm::json::Path path)
std::optional< uint64_t > address
std::optional< uint64_t > id
std::optional< lldb::SymbolType > type
std::optional< uint64_t > value
std::optional< uint64_t > size