Go to the documentation of this file.
48 #ifndef BLOATY_DWARF_DEBUG_INFO_H_
49 #define BLOATY_DWARF_DEBUG_INFO_H_
52 #include <unordered_map>
54 #include "absl/strings/string_view.h"
55 #include "absl/strings/substitute.h"
114 return addr8_ ? ReadFixed<uint64_t>(
data) : ReadFixed<uint32_t>(
data);
118 return addr8_ ? 0xffffffffffffffff : 0xffffffff;
178 *abbrev = &
it->second;
331 return ReadFixed<uint32_t>(&addrs);
334 return ReadFixed<uint64_t>(&addrs);
355 #endif // BLOATY_DWARF_DEBUG_INFO_H_
void ReadTopLevelDIE(InfoReader &reader)
const AbbrevTable::Abbrev * ReadCode(const CU &cu)
absl::string_view abbrev_data() const
uint8_t dwarf_version() const
std::function< void(absl::string_view)> strp_callback_
absl::string_view debug_rnglists
void SetFieldByName(absl::string_view name, absl::string_view contents)
uint64_t unit_type_signature_
InfoReader & operator=(const InfoReader &)=delete
void ReadAttributes(const CU &cu, const AbbrevTable::Abbrev *code, T &&func)
uint64_t ReadDWARFOffset(absl::string_view *data) const
void ReadAbbrevs(absl::string_view data)
InfoReader(const File &file)
DIEReader(absl::string_view data)
uint64_t range_lists_base() const
#define T(upbtypeconst, upbtype, ctype, default_value)
const File & dwarf() const
InfoReader::Section section_
absl::string_view next_unit_
absl::string_view debug_str_offsets
uint64_t ReadAddress(absl::string_view *data) const
absl::string_view debug_abbrev
uint64_t str_offsets_base() const
void SkipBytes(size_t bytes, absl::string_view *data)
absl::string_view debug_pubtypes
const AbbrevTable & unit_abbrev() const
absl::string_view remaining_
std::vector< Attribute > attr
bool GetAbbrev(uint32_t code, const Abbrev **abbrev) const
unsigned __int64 uint64_t
const std::string & unit_name() const
uint64_t MaxAddress() const
absl::string_view debug_loc
bool IsValidDwarfAddress(uint64_t addr) const
CUIter(InfoReader::Section section, absl::string_view next_unit)
std::unordered_map< uint64_t, std::string > stmt_list_map_
static AttrValue ParseAttr(const CU &cu, uint8_t form, absl::string_view *data)
absl::string_view debug_addr
absl::string_view debug_pubnames
absl::string_view debug_info
absl::string_view * GetFieldByName(absl::string_view name)
CUIter GetCUIter(Section section, uint64_t offset=0)
void ReadHeader(absl::string_view entire_unit, absl::string_view data, InfoReader::Section section, InfoReader &reader)
bool IsValidDwarfAddress(uint64_t addr, uint8_t address_size)
absl::string_view entire_unit() const
uint64_t str_offsets_base_
OPENSSL_EXPORT X509_ATTRIBUTE * attr
absl::string_view debug_str
absl::string_view ReadInitialLength(absl::string_view *remaining)
uint64_t range_lists_base_
#define BLOATY_UNREACHABLE()
uint8_t address_size() const
void SetIndirectStringCallback(std::function< void(absl::string_view)> strp_sink)
absl::string_view entire_unit_
AbbrevTable * unit_abbrev_
void SetAddressSize(uint8_t address_size)
void SkipChildren(const CU &cu, const AbbrevTable::Abbrev *code)
const File & dwarf() const
CompilationUnitSizes unit_sizes_
const CompilationUnitSizes & unit_sizes() const
absl::string_view debug_line
absl::string_view debug_types
void ReadDWARFVersion(absl::string_view *data)
uint64_t ReadIndirectAddress(const CU &cu, uint64_t val)
void AddIndirectString(absl::string_view range) const
std::unordered_map< uint64_t, AbbrevTable > abbrev_tables_
absl::string_view abbrev_data_
absl::string_view debug_ranges
uint64_t unit_type_offset_
uint64_t addr_base() const
absl::string_view debug_aranges
std::unordered_map< uint32_t, Abbrev > abbrev_
bool NextCU(InfoReader &reader, CU *cu)
grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:59:02