Index: llvm/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp =================================================================== --- llvm/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp +++ llvm/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp @@ -28,8 +28,8 @@ // Read and verify the length field. if (!Data.isValidOffsetForDataOfSize(*OffsetPtr, sizeof(uint32_t))) return createStringError(errc::invalid_argument, - "section is not large enough to contain a " - ".debug_addr table length at offset 0x%" + "section is not large enough to contain an " + "address table length at offset 0x%" PRIx64, *OffsetPtr); uint16_t UnitVersion; if (Version == 0) { @@ -51,22 +51,23 @@ HeaderOffset); } if (HeaderData.Length + sizeof(uint32_t) < sizeof(Header)) { - uint32_t TmpLength = getLength(); + uint32_t TmpLength = HeaderData.Length; invalidateLength(); return createStringError(errc::invalid_argument, - ".debug_addr table at offset 0x%" PRIx64 + "address table at offset 0x%" PRIx64 " has too small length (0x%" PRIx32 ") to contain a complete header", HeaderOffset, TmpLength); } uint64_t End = HeaderOffset + getLength(); if (!Data.isValidOffsetForDataOfSize(HeaderOffset, End - HeaderOffset)) { - uint32_t TmpLength = getLength(); + uint32_t TmpLength = HeaderData.Length; invalidateLength(); - return createStringError(errc::invalid_argument, - "section is not large enough to contain a .debug_addr table " - "of length 0x%" PRIx32 " at offset 0x%" PRIx64, - TmpLength, HeaderOffset); + return createStringError( + errc::invalid_argument, + "section is not large enough to contain an address table " + "at offset 0x%" PRIx64 " with a length field of 0x%" PRIx32, + HeaderOffset, TmpLength); } HeaderData.Version = Data.getU16(OffsetPtr); @@ -87,9 +88,10 @@ // implementations of .debug_addr table, which doesn't contain a header // and consists only of a series of addresses. if (HeaderData.Version > 5) { - return createStringError(errc::not_supported, "version %" PRIu16 - " of .debug_addr section at offset 0x%" PRIx64 " is not supported", - HeaderData.Version, HeaderOffset); + return createStringError(errc::not_supported, + "address table at offset 0x%" PRIx64 + " has unsupported version %" PRIu16, + HeaderOffset, HeaderData.Version); } // FIXME: For now we just treat version mismatch as an error, // however the correct way to associate a .debug_addr table @@ -97,33 +99,34 @@ // attribute in the info table. if (HeaderData.Version != UnitVersion) return createStringError(errc::invalid_argument, - ".debug_addr table at offset 0x%" PRIx64 + "address table at offset 0x%" PRIx64 " has version %" PRIu16 " which is different from the version suggested" " by the DWARF unit header: %" PRIu16, HeaderOffset, HeaderData.Version, UnitVersion); if (HeaderData.AddrSize != 4 && HeaderData.AddrSize != 8) return createStringError(errc::not_supported, - ".debug_addr table at offset 0x%" PRIx64 - " has unsupported address size %" PRIu8, + "address table at offset 0x%" PRIx64 + " has unsupported address size %" PRIu8 + " (4 and 8 are supported)", HeaderOffset, HeaderData.AddrSize); if (HeaderData.AddrSize != AddrSize && AddrSize != 0) WarnCallback(createStringError( errc::invalid_argument, - ".debug_addr table at offset 0x%" PRIx64 " has address size %" PRIu8 + "address table at offset 0x%" PRIx64 " has address size %" PRIu8 " which is different from CU address size %" PRIu8, HeaderOffset, HeaderData.AddrSize, AddrSize)); // TODO: add support for non-zero segment selector size. if (HeaderData.SegSize != 0) return createStringError(errc::not_supported, - ".debug_addr table at offset 0x%" PRIx64 + "address table at offset 0x%" PRIx64 " has unsupported segment selector size %" PRIu8, HeaderOffset, HeaderData.SegSize); if (DataSize % HeaderData.AddrSize != 0) { invalidateLength(); return createStringError(errc::invalid_argument, - ".debug_addr table at offset 0x%" PRIx64 + "address table at offset 0x%" PRIx64 " contains data of size %" PRIu32 " which is not a multiple of addr size %" PRIu8, HeaderOffset, DataSize, HeaderData.AddrSize); @@ -162,8 +165,8 @@ if (Index < Addrs.size()) return Addrs[Index]; return createStringError(errc::invalid_argument, - "Index %" PRIu32 " is out of range of the " - ".debug_addr table at offset 0x%" PRIx64, + "Index %" PRIu32 " is out of range in the " + "address table at offset 0x%" PRIx64, Index, HeaderOffset); } Index: llvm/test/tools/llvm-dwarfdump/X86/debug_addr_address_size_mismatch.s =================================================================== --- llvm/test/tools/llvm-dwarfdump/X86/debug_addr_address_size_mismatch.s +++ llvm/test/tools/llvm-dwarfdump/X86/debug_addr_address_size_mismatch.s @@ -2,7 +2,7 @@ # RUN: llvm-dwarfdump -debug-addr - 2> %t.warn | FileCheck %s # RUN: FileCheck %s -input-file %t.warn -check-prefix=WARN -# WARN: .debug_addr table at offset 0x0 has address size 8 which is different from CU address size 4 +# WARN: address table at offset 0x0 has address size 8 which is different from CU address size 4 # WARN-NOT: {{.}} # CHECK: .debug_addr contents Index: llvm/test/tools/llvm-dwarfdump/X86/debug_addr_address_size_not_multiple.s =================================================================== --- llvm/test/tools/llvm-dwarfdump/X86/debug_addr_address_size_not_multiple.s +++ llvm/test/tools/llvm-dwarfdump/X86/debug_addr_address_size_not_multiple.s @@ -4,7 +4,7 @@ # CHECK: .debug_addr contents: # CHECK-NOT: {{.}} -# ERR: .debug_addr table at offset 0x0 contains data of size 7 which is not a multiple of addr size 4 +# ERR: address table at offset 0x0 contains data of size 7 which is not a multiple of addr size 4 # ERR-NOT: {{.}} # data size is not multiple of address_size Index: llvm/test/tools/llvm-dwarfdump/X86/debug_addr_invalid_addr_size.s =================================================================== --- llvm/test/tools/llvm-dwarfdump/X86/debug_addr_invalid_addr_size.s +++ llvm/test/tools/llvm-dwarfdump/X86/debug_addr_invalid_addr_size.s @@ -4,7 +4,7 @@ # CHECK: .debug_addr contents: # CHECK-NOT: {{.}} -# ERR: unsupported address size 3 +# ERR: unsupported address size 3 (4 and 8 are supported) # ERR-NOT: {{.}} # invalid addr size Index: llvm/test/tools/llvm-dwarfdump/X86/debug_addr_segment_selector.s =================================================================== --- llvm/test/tools/llvm-dwarfdump/X86/debug_addr_segment_selector.s +++ llvm/test/tools/llvm-dwarfdump/X86/debug_addr_segment_selector.s @@ -4,7 +4,7 @@ # CHECK: .debug_addr contents: # CHECK-NOT: {{.}} -# ERR: .debug_addr table at offset 0x0 has unsupported segment selector size 1 +# ERR: address table at offset 0x0 has unsupported segment selector size 1 # ERR-NOT: {{.}} # non-zero segment_selector_size Index: llvm/test/tools/llvm-dwarfdump/X86/debug_addr_small_length_field.s =================================================================== --- llvm/test/tools/llvm-dwarfdump/X86/debug_addr_small_length_field.s +++ llvm/test/tools/llvm-dwarfdump/X86/debug_addr_small_length_field.s @@ -4,7 +4,7 @@ # CHECK: .debug_addr contents: # CHECK-NOT: {{.}} -# ERR: .debug_addr table at offset 0x0 has too small length (0x5) to contain a complete header +# ERR: address table at offset 0x0 has too small length (0x1) to contain a complete header # ERR-NOT: {{.}} # too small length value Index: llvm/test/tools/llvm-dwarfdump/X86/debug_addr_too_small_for_length_field.s =================================================================== --- llvm/test/tools/llvm-dwarfdump/X86/debug_addr_too_small_for_length_field.s +++ llvm/test/tools/llvm-dwarfdump/X86/debug_addr_too_small_for_length_field.s @@ -4,7 +4,7 @@ # CHECK: .debug_addr contents: # CHECK-NOT: {{.}} -# ERR: section is not large enough to contain a .debug_addr table length at offset 0x0 +# ERR: section is not large enough to contain an address table length at offset 0x0 # ERR-NOT: {{.}} # too small section to contain length field Index: llvm/test/tools/llvm-dwarfdump/X86/debug_addr_too_small_for_section.s =================================================================== --- llvm/test/tools/llvm-dwarfdump/X86/debug_addr_too_small_for_section.s +++ llvm/test/tools/llvm-dwarfdump/X86/debug_addr_too_small_for_section.s @@ -4,7 +4,7 @@ # CHECK: .debug_addr contents: # CHECK-NOT: {{.}} -# ERR: section is not large enough to contain a .debug_addr table of length 0x10 at offset 0x0 +# ERR: section is not large enough to contain an address table at offset 0x0 with a length field of 0xc # ERR-NOT: {{.}} # too small section to contain section of given length Index: llvm/test/tools/llvm-dwarfdump/X86/debug_addr_unsupported_version.s =================================================================== --- llvm/test/tools/llvm-dwarfdump/X86/debug_addr_unsupported_version.s +++ llvm/test/tools/llvm-dwarfdump/X86/debug_addr_unsupported_version.s @@ -2,7 +2,7 @@ # RUN: llvm-dwarfdump -debug-addr - 2> %t.err | FileCheck %s # RUN: FileCheck %s -input-file %t.err -check-prefix=ERR -# ERR: version 6 of .debug_addr section at offset 0x0 is not supported +# ERR: address table at offset 0x0 has unsupported version 6 # ERR-NOT: {{.}} # CHECK: .debug_addr contents Index: llvm/test/tools/llvm-dwarfdump/X86/debug_addr_version_mismatch.s =================================================================== --- llvm/test/tools/llvm-dwarfdump/X86/debug_addr_version_mismatch.s +++ llvm/test/tools/llvm-dwarfdump/X86/debug_addr_version_mismatch.s @@ -2,7 +2,7 @@ # RUN: llvm-dwarfdump -debug-addr - 2> %t.err | FileCheck %s # RUN: FileCheck %s -input-file %t.err -check-prefix=ERR -# ERR: .debug_addr table at offset 0x0 has version 4 which is different from the version suggested by the DWARF unit header: 5 +# ERR: address table at offset 0x0 has version 4 which is different from the version suggested by the DWARF unit header: 5 # ERR-NOT: {{.}} # CHECK: .debug_addr contents