Lines Matching +full:address +full:- +full:data
1 //===- DWARFDebugAddr.cpp -------------------------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
16 Error DWARFDebugAddrTable::extractAddresses(const DWARFDataExtractor &Data, in extractAddresses() argument
20 uint64_t DataSize = EndOffset - *OffsetPtr; in extractAddresses()
21 assert(Data.isValidOffsetForDataOfSize(*OffsetPtr, DataSize)); in extractAddresses()
23 AddrSize, errc::not_supported, "address table at offset 0x%" PRIx64, in extractAddresses()
29 "address table at offset 0x%" PRIx64 in extractAddresses()
30 " contains data of size 0x%" PRIx64 in extractAddresses()
37 while (Count--) in extractAddresses()
38 Addrs.push_back(Data.getRelocatedValue(AddrSize, OffsetPtr)); in extractAddresses()
42 Error DWARFDebugAddrTable::extractV5(const DWARFDataExtractor &Data, in extractV5() argument
47 std::tie(Length, Format) = Data.getInitialLength(OffsetPtr, &Err); in extractV5()
51 "parsing address table at offset 0x%" PRIx64 in extractV5()
56 if (!Data.isValidOffsetForDataOfSize(*OffsetPtr, Length)) { in extractV5()
61 "section is not large enough to contain an address table " in extractV5()
72 "address table at offset 0x%" PRIx64 in extractV5()
78 Version = Data.getU16(OffsetPtr); in extractV5()
79 AddrSize = Data.getU8(OffsetPtr); in extractV5()
80 SegSize = Data.getU8(OffsetPtr); in extractV5()
85 "address table at offset 0x%" PRIx64 in extractV5()
88 // TODO: add support for non-zero segment selector size. in extractV5()
91 "address table at offset 0x%" PRIx64 in extractV5()
95 if (Error Err = extractAddresses(Data, OffsetPtr, EndOffset)) in extractV5()
100 "address table at offset 0x%" PRIx64 " has address size %" PRIu8 in extractV5()
101 " which is different from CU address size %" PRIu8, in extractV5()
107 Error DWARFDebugAddrTable::extractPreStandard(const DWARFDataExtractor &Data, in extractPreStandard() argument
119 return extractAddresses(Data, OffsetPtr, Data.size()); in extractPreStandard()
122 Error DWARFDebugAddrTable::extract(const DWARFDataExtractor &Data, in extract() argument
128 return extractPreStandard(Data, OffsetPtr, CUVersion, CUAddrSize); in extract()
133 return extractV5(Data, OffsetPtr, CUAddrSize, WarnCallback); in extract()
141 OS << "Address table header: " in dump()
162 llvm_unreachable("unsupported address size"); in dump()
176 "address table at offset 0x%" PRIx64, in getAddrEntry()