Go to the documentation of this file.
9 #ifndef LLVM_DEBUGINFO_GSYM_GSYMCREATOR_H
10 #define LLVM_DEBUGINFO_GSYM_GSYMCREATOR_H
135 mutable std::mutex
Mutex;
136 std::vector<FunctionInfo> Funcs;
140 std::vector<llvm::gsym::FileEntry> Files;
141 std::vector<uint8_t>
UUID;
145 bool Finalized =
false;
248 ValidTextRanges = TextRanges;
253 return ValidTextRanges;
299 #endif // LLVM_DEBUGINFO_GSYM_GSYMCREATOR_H
This is an optimization pass for GlobalISel generic memory operations.
GsymCreator is used to emit GSYM data to a stand alone file or section within a file.
llvm::Error encode(FileWriter &O) const
Encode a GSYM into the file writer stream at the current position.
bool IsValidTextAddress(uint64_t Addr) const
Check if an address is a valid code address.
void SetValidTextRanges(AddressRanges &TextRanges)
Set valid .text address ranges that all functions must be contained in.
void setBaseAddress(uint64_t Addr)
Set the base address to use for the GSYM file.
bool hasFunctionInfoForAddress(uint64_t Addr) const
Check if an address has already been added as a function info.
This class implements an extremely fast bulk output stream that can only output to a stream.
Function information in GSYM files encodes information for one contiguous address range.
const Optional< AddressRanges > GetValidTextRanges() const
Get the valid text ranges.
A simplified binary data writer class that doesn't require targets, target definitions,...
print Print MemDeps of function
std::pair< llvm::MachO::Target, std::string > UUID
void forEachFunctionInfo(std::function< bool(FunctionInfo &)> const &Callback)
Thread safe iteration over all function infos.
StringSet - A wrapper for StringMap that provides set-like functionality.
size_t getNumFunctionInfos() const
Get the current number of FunctionInfo objects contained in this object.
StringRef - Represent a constant reference to a string, i.e.
void addFunctionInfo(FunctionInfo &&FI)
Add a function info to this GSYM creator.
add sub stmia L5 ldr r0 bl L_printf $stub Instead of a and a wouldn t it be better to do three moves *Return an aggregate type is even return S
uint32_t insertString(StringRef S, bool Copy=true)
Insert a string into the GSYM string table.
Lightweight error class with error context and mandatory checking.
Utility for building string tables with deduplicated suffixes.
uint32_t insertFile(StringRef Path, sys::path::Style Style=sys::path::Style::native)
Insert a file into this GSYM creator.
bool isQuiet() const
Whether the transformation should be quiet, i.e. not output warnings.
The AddressRanges class helps normalize address range collections.
llvm::Error save(StringRef Path, llvm::support::endianness ByteOrder) const
Save a GSYM file to a stand alone file.
llvm::Error finalize(llvm::raw_ostream &OS)
Finalize the data in the GSYM creator prior to saving the data out.
GsymCreator(bool Quiet=false)
void setUUID(llvm::ArrayRef< uint8_t > UUIDBytes)
Set the UUID value.