[Lldb-commits] [lldb] r345249 - [LLDB] - Parse the DW_LLE_startx_length correctly for DWARF v5 case.
Author: grimar Date: Thu Oct 25 02:22:26 2018 New Revision: 345249 URL: http://llvm.org/viewvc/llvm-project?rev=345249&view=rev Log: [LLDB] - Parse the DW_LLE_startx_length correctly for DWARF v5 case. Currently, we always parse the length field of DW_LLE_startx_length entry as U32. That is correct for pre-standard definition: https://gcc.gnu.org/wiki/DebugFission - "A start/length entry contains one unsigned LEB128 number and a 4-byte unsigned value (as would be represented by the form code DW_FORM_const4u). The first number is an index into the .debug_addr section that selects the beginning offset, and the second number is the length of the range. ") But DWARF v5 says: "This is a form of bounded location description that has two unsigned ULEB operands. The first value is an address index (into the .debug_addr section) that indicates the beginning of the address range over which the location is valid. The second value is the length of the range." Fortunately, we can easily handle the difference. No test case because it seems impossible to test until we will be ready to use DWARF v5 in tests that need to run the executables. Differential revision: https://reviews.llvm.org/D53646 Modified: lldb/trunk/include/lldb/Expression/DWARFExpression.h lldb/trunk/source/Expression/DWARFExpression.cpp Modified: lldb/trunk/include/lldb/Expression/DWARFExpression.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Expression/DWARFExpression.h?rev=345249&r1=345248&r2=345249&view=diff == --- lldb/trunk/include/lldb/Expression/DWARFExpression.h (original) +++ lldb/trunk/include/lldb/Expression/DWARFExpression.h Thu Oct 25 02:22:26 2018 @@ -40,8 +40,10 @@ public: enum LocationListFormat : uint8_t { NonLocationList, // Not a location list RegularLocationList, // Location list format used in non-split dwarf files -SplitDwarfLocationList, // Location list format used in split dwarf files -LocLists, // Location list format used in DWARF v5 (.debug_loclists). +SplitDwarfLocationList, // Location list format used in pre-DWARF v5 split +// dwarf files (.debug_loc.dwo) +LocLists, // Location list format used in DWARF v5 +// (.debug_loclists/.debug_loclists.dwo). }; //-- @@ -153,7 +155,7 @@ public: lldb::addr_t GetLocation_DW_OP_addr(uint32_t op_addr_idx, bool &error) const; bool Update_DW_OP_addr(lldb::addr_t file_addr); - + void SetModule(const lldb::ModuleSP &module) { m_module_wp = module; } bool ContainsThreadLocalStorage() const; Modified: lldb/trunk/source/Expression/DWARFExpression.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/DWARFExpression.cpp?rev=345249&r1=345248&r2=345249&view=diff == --- lldb/trunk/source/Expression/DWARFExpression.cpp (original) +++ lldb/trunk/source/Expression/DWARFExpression.cpp Thu Oct 25 02:22:26 2018 @@ -3029,7 +3029,9 @@ bool DWARFExpression::AddressRangeForLoc if (!debug_loc_data.ValidOffset(*offset_ptr)) return false; - switch (dwarf_cu->GetSymbolFileDWARF()->GetLocationListFormat()) { + DWARFExpression::LocationListFormat format = + dwarf_cu->GetSymbolFileDWARF()->GetLocationListFormat(); + switch (format) { case NonLocationList: return false; case RegularLocationList: @@ -3051,7 +3053,9 @@ bool DWARFExpression::AddressRangeForLoc case DW_LLE_startx_length: { uint64_t index = debug_loc_data.GetULEB128(offset_ptr); low_pc = ReadAddressFromDebugAddrSection(dwarf_cu, index); - uint32_t length = debug_loc_data.GetU32(offset_ptr); + uint64_t length = (format == LocLists) +? debug_loc_data.GetULEB128(offset_ptr) +: debug_loc_data.GetU32(offset_ptr); high_pc = low_pc + length; return true; } ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r345251 - Recommit r345127 "[LLDB] - Add support for DW_RLE_base_address and DW_RLE_offset_pair entries (.debug_rnglists)"
Author: grimar Date: Thu Oct 25 03:25:45 2018 New Revision: 345251 URL: http://llvm.org/viewvc/llvm-project?rev=345251&view=rev Log: Recommit r345127 "[LLDB] - Add support for DW_RLE_base_address and DW_RLE_offset_pair entries (.debug_rnglists)" With the fix: do not forget to hanlde the DW_RLE_start_end, which seems was omited/forgotten/removed by mistake. Original commit message: The patch implements the support for DW_RLE_base_address and DW_RLE_offset_pair .debug_rnglists entries Differential revision: https://reviews.llvm.org/D53140 Added : /lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_offset_pair.yaml Added : /lldb/trunk/lit/Breakpoint/debug_rnglist_offset_pair.test Modified : /lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp Modified : /lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp Modified : /lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h Modified : /lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp Modified : /lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h Added: lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_offset_pair.yaml - copied unchanged from r345156, lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_offset_pair.yaml lldb/trunk/lit/Breakpoint/debug_rnglist_offset_pair.test - copied unchanged from r345156, lldb/trunk/lit/Breakpoint/debug_rnglist_offset_pair.test Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp?rev=345251&r1=345250&r2=345251&view=diff == --- lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp (original) +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp Thu Oct 25 03:25:45 2018 @@ -456,20 +456,15 @@ bool DWARFDebugInfoEntry::GetDIENamesAnd break; case DW_AT_ranges: { - const DWARFDebugRanges *debug_ranges = dwarf2Data->DebugRanges(); - if (debug_ranges) { -debug_ranges->FindRanges(cu->GetRangesBase(), form_value.Unsigned(), ranges); -// All DW_AT_ranges are relative to the base address of the compile -// unit. We add the compile unit base address to make sure all the -// addresses are properly fixed up. -ranges.Slide(cu->GetBaseAddress()); - } else { + const DWARFDebugRangesBase *debug_ranges = dwarf2Data->DebugRanges(); + if (debug_ranges) +debug_ranges->FindRanges(cu, form_value.Unsigned(), ranges); + else cu->GetSymbolFileDWARF()->GetObjectFile()->GetModule()->ReportError( "{0x%8.8x}: DIE has DW_AT_ranges(0x%" PRIx64 ") attribute yet DWARF has no .debug_ranges, please file a bug " "and attach the file at the start of this error message", m_offset, form_value.Unsigned()); - } } break; case DW_AT_name: @@ -1065,10 +1060,8 @@ size_t DWARFDebugInfoEntry::GetAttribute dwarf2Data, cu, DW_AT_ranges, DW_INVALID_OFFSET, check_specification_or_abstract_origin); if (debug_ranges_offset != DW_INVALID_OFFSET) { -if (DWARFDebugRanges *debug_ranges = dwarf2Data->DebugRanges()) - debug_ranges->FindRanges(cu->GetRangesBase(), debug_ranges_offset, - ranges); -ranges.Slide(cu->GetBaseAddress()); +if (DWARFDebugRangesBase *debug_ranges = dwarf2Data->DebugRanges()) + debug_ranges->FindRanges(cu, debug_ranges_offset, ranges); } else if (check_hi_lo_pc) { dw_addr_t lo_pc = LLDB_INVALID_ADDRESS; dw_addr_t hi_pc = LLDB_INVALID_ADDRESS; @@ -1723,12 +1716,9 @@ bool DWARFDebugInfoEntry::LookupAddress( dwarf2Data, cu, DW_AT_ranges, DW_INVALID_OFFSET); if (debug_ranges_offset != DW_INVALID_OFFSET) { DWARFRangeList ranges; - DWARFDebugRanges *debug_ranges = dwarf2Data->DebugRanges(); - debug_ranges->FindRanges(cu->GetRangesBase(), debug_ranges_offset, ranges); - // All DW_AT_ranges are relative to the base address of the compile - // unit. We add the compile unit base address to make sure all the - // addresses are properly fixed up. - ranges.Slide(cu->GetBaseAddress()); + DWARFDebugRangesBase *debug_ranges = dwarf2Data->DebugRanges(); + debug_ranges->FindRanges(cu, debug_ranges_offset, ranges); + if (ranges.FindEntryThatContains(address)) { fo
[Lldb-commits] [lldb] r345498 - [LLDB] - Fix outdated comment. NFC.
Author: grimar Date: Mon Oct 29 05:33:19 2018 New Revision: 345498 URL: http://llvm.org/viewvc/llvm-project?rev=345498&view=rev Log: [LLDB] - Fix outdated comment. NFC. Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp?rev=345498&r1=345497&r2=345498&view=diff == --- lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp (original) +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp Mon Oct 29 05:33:19 2018 @@ -168,8 +168,7 @@ bool DWARFDebugRngLists::ExtractRangeLis default: // Next encodings are not yet supported: - // DW_RLE_base_addressx, DW_RLE_startx_endx, DW_RLE_startx_length, - // DW_RLE_offset_pair, DW_RLE_base_address. + // DW_RLE_base_addressx, DW_RLE_startx_endx, DW_RLE_startx_length. lldbassert(0 && "unknown range list entry encoding"); error = true; } ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r345706 - [LLDB] - Add support for DW_FORM_addrx[1-4]? forms.
Author: grimar Date: Wed Oct 31 03:14:03 2018 New Revision: 345706 URL: http://llvm.org/viewvc/llvm-project?rev=345706&view=rev Log: [LLDB] - Add support for DW_FORM_addrx[1-4]? forms. This adds the support for DW_FORM_addrx, DW_FORM_addrx1, DW_FORM_addrx2, DW_FORM_addrx3, DW_FORM_addrx4 forms. Differential revision: https://reviews.llvm.org/D53813 Added: lldb/trunk/lit/Breakpoint/Inputs/debug_addrx.yaml lldb/trunk/lit/Breakpoint/debug_addrx.test Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFUnit.h Added: lldb/trunk/lit/Breakpoint/Inputs/debug_addrx.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/debug_addrx.yaml?rev=345706&view=auto == --- lldb/trunk/lit/Breakpoint/Inputs/debug_addrx.yaml (added) +++ lldb/trunk/lit/Breakpoint/Inputs/debug_addrx.yaml Wed Oct 31 03:14:03 2018 @@ -0,0 +1,57 @@ +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data:ELFDATA2LSB + Type:ET_EXEC + Machine: EM_X86_64 + Entry: 0x00201000 +Sections: + - Name:.text +Type:SHT_PROGBITS +Flags: [ SHF_ALLOC, SHF_EXECINSTR ] +Address: 0x00201000 +AddressAlign:0x0010 +Content: 31ED4989D15E4889E24883E4F0505449C7C08011200048C7C11011200048C7C700112000E89701F455B810202000483D102020004889E57417B84885C0740D5DBF10202000FFE00F1F445DC3660F1F44BE10202000554881EE102020004889E548C1FE034889F048C1E83F4801C648D1FE7415B84885C0740B5DBF10202000FFE00F1F005DC3660F1F44803D592F007517554889E5E87EFFC605472F015DC30F1F44F3C30F1F4000662E0F1F8400554889E55DEB89CCC3CCC3CC31C0C3CC415741564189FF415541544C8D25E61E55488D2DE61E534989F64989D54C29E54883EC0848C1FD03E843004885ED742031DB0F1F84004C89EA4C89F64489FF41FF14DC4883C3014839EB75EA4883C4085B5D415C415D415E415FC390662E0F1F8400F3C3 + - Name:.debug_str_offsets +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 440005006B005F003A000E001A001E0093002E001600670005009A008E0069009500 + - Name:.debug_str +Type:SHT_PROGBITS +Flags: [ SHF_MERGE, SHF_STRINGS ] +AddressAlign:0x0001 +Content: 74686973005F5A336261723141005F76707472244100666F6F00696E74005F5F7674626C5F7074725F74797065005F5A4E314133666F6F4576002F686F6D652F756D622F74657374735F323031382F3131326C6C64625F726C657461677300746573742E63630041006100636C616E672076657273696F6E20382E302E3020287472756E6B2033343438333429006D61696E0078006F626A410062617200 + - Name:.debug_loc +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: E0102000E010230011009FE0102000E1102500110023019F + - Name:.debug_abbrev +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 011101252513050325721710171B2573171101551774170213011D13360B03250B0B3A0B3B0B030D0003254913380B3419040D00032549133A0B3B0B380B052E016E2503253A0B3B0B4C0B4D183C193F191D1306050049133419070F004913080F004913032509150049130A240003253E0B0B0B0B2E0B1206401864137A193B0B47130C05000325491334190D3400021703253A0B3B0B49130E2E0B120640187A196E2503253A0B3B0B3F190F050003253A0B3B0B4913102E0B120640187A1903253A0B3B0B49133F1911340003253A0B3B0B491300 + - Name:.debug_info +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: C80005000108010004000108000208000C000C00022E00040910010303035C04066C000104080507080105010210002E000677610008670005096C000A040504072E000B000100015786000848000C0DC6000D0601096C0E01010001570A0B010D0F0E010D2E1002030001570C01116C00110F01122E072E + - Name:.debug_rnglists +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 27000500080007E0102107F010210700112300 + - Name:.debug_macinfo +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: '00' + - Name:.debug_addr +Type:SHT_PROGBITS +
[Lldb-commits] [lldb] r345720 - [LLDB] - Removed unused variable. NFC.
Author: grimar Date: Wed Oct 31 06:49:31 2018 New Revision: 345720 URL: http://llvm.org/viewvc/llvm-project?rev=345720&view=rev Log: [LLDB] - Removed unused variable. NFC. Introduced in r344119. Thanks to Dávid Bolvanský fo reporting. Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp?rev=345720&r1=345719&r2=345720&view=diff == --- lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp (original) +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp Wed Oct 31 06:49:31 2018 @@ -214,11 +214,8 @@ void DWARFDebugRngLists::Extract(SymbolF lldb::offset_t offset = 0; uint64_t length = data.GetU32(&offset); - bool isDwarf64 = false; - if (length == 0x) { + if (length == 0x) length = data.GetU64(&offset); -isDwarf64 = true; - } lldb::offset_t end = offset + length; // Check version. ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r345733 - [LLDB] - Regroup the switch entries in DWARFFormValue::ExtractValue. NFC.
Author: grimar Date: Wed Oct 31 09:12:29 2018 New Revision: 345733 URL: http://llvm.org/viewvc/llvm-project?rev=345733&view=rev Log: [LLDB] - Regroup the switch entries in DWARFFormValue::ExtractValue. NFC. This is NFC to clean up the `DWARFFormValue::ExtractValue`. It groups similar `DW_FORM_*` and removes an excessive assignment of `ref_addr_size` (it was assigned right after in any case). Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp?rev=345733&r1=345732&r2=345733&view=diff == --- lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp (original) +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp Wed Oct 31 09:12:29 2018 @@ -182,8 +182,12 @@ bool DWARFFormValue::ExtractValue(const switch (m_form) { case DW_FORM_addr: assert(m_cu); - m_value.value.uval = data.GetMaxU64( - offset_ptr, DWARFUnit::GetAddressByteSize(m_cu)); + m_value.value.uval = + data.GetMaxU64(offset_ptr, DWARFUnit::GetAddressByteSize(m_cu)); + break; +case DW_FORM_block1: + m_value.value.uval = data.GetU8(offset_ptr); + is_block = true; break; case DW_FORM_block2: m_value.value.uval = data.GetU16(offset_ptr); @@ -193,56 +197,39 @@ bool DWARFFormValue::ExtractValue(const m_value.value.uval = data.GetU32(offset_ptr); is_block = true; break; -case DW_FORM_data2: - m_value.value.uval = data.GetU16(offset_ptr); - break; -case DW_FORM_data4: - m_value.value.uval = data.GetU32(offset_ptr); - break; -case DW_FORM_data8: - m_value.value.uval = data.GetU64(offset_ptr); - break; case DW_FORM_data16: m_value.value.uval = 16; is_block = true; break; -case DW_FORM_string: - m_value.value.cstr = data.GetCStr(offset_ptr); - break; case DW_FORM_exprloc: case DW_FORM_block: m_value.value.uval = data.GetULEB128(offset_ptr); is_block = true; break; -case DW_FORM_block1: - m_value.value.uval = data.GetU8(offset_ptr); - is_block = true; - break; -case DW_FORM_data1: - m_value.value.uval = data.GetU8(offset_ptr); - break; -case DW_FORM_flag: - m_value.value.uval = data.GetU8(offset_ptr); +case DW_FORM_string: + m_value.value.cstr = data.GetCStr(offset_ptr); break; case DW_FORM_sdata: m_value.value.sval = data.GetSLEB128(offset_ptr); break; case DW_FORM_strp: case DW_FORM_line_strp: +case DW_FORM_sec_offset: assert(m_cu); m_value.value.uval = data.GetMaxU64(offset_ptr, DWARFUnit::IsDWARF64(m_cu) ? 8 : 4); break; -case DW_FORM_addrx: -case DW_FORM_strx: - m_value.value.uval = data.GetULEB128(offset_ptr); - break; case DW_FORM_addrx1: case DW_FORM_strx1: +case DW_FORM_ref1: +case DW_FORM_data1: +case DW_FORM_flag: m_value.value.uval = data.GetU8(offset_ptr); break; case DW_FORM_addrx2: case DW_FORM_strx2: +case DW_FORM_ref2: +case DW_FORM_data2: m_value.value.uval = data.GetU16(offset_ptr); break; case DW_FORM_addrx3: @@ -251,61 +238,40 @@ bool DWARFFormValue::ExtractValue(const break; case DW_FORM_addrx4: case DW_FORM_strx4: +case DW_FORM_ref4: +case DW_FORM_data4: m_value.value.uval = data.GetU32(offset_ptr); break; -// case DW_FORM_APPLE_db_str: +case DW_FORM_data8: +case DW_FORM_ref8: +case DW_FORM_ref_sig8: + m_value.value.uval = data.GetU64(offset_ptr); + break; +case DW_FORM_addrx: +case DW_FORM_strx: case DW_FORM_udata: +case DW_FORM_ref_udata: +case DW_FORM_GNU_str_index: +case DW_FORM_GNU_addr_index: m_value.value.uval = data.GetULEB128(offset_ptr); break; case DW_FORM_ref_addr: assert(m_cu); - ref_addr_size = 4; if (m_cu->GetVersion() <= 2) ref_addr_size = m_cu->GetAddressByteSize(); else ref_addr_size = m_cu->IsDWARF64() ? 8 : 4; m_value.value.uval = data.GetMaxU64(offset_ptr, ref_addr_size); break; -case DW_FORM_ref1: - m_value.value.uval = data.GetU8(offset_ptr); - break; -case DW_FORM_ref2: - m_value.value.uval = data.GetU16(offset_ptr); - break; -case DW_FORM_ref4: - m_value.value.uval = data.GetU32(offset_ptr); - break; -case DW_FORM_ref8: - m_value.value.uval = data.GetU64(offset_ptr); - break; -case DW_FORM_ref_udata: - m_value.value.uval = data.GetULEB128(offset_ptr); - break; case DW_FORM_indirect: m_form = data.GetULEB128(offset_ptr); indirect = true; break
[Lldb-commits] [lldb] r345958 - [LLDB] - Add support for DW_FORM_rnglistx and relative DW_RLE_* entries.
Author: grimar Date: Fri Nov 2 02:03:25 2018 New Revision: 345958 URL: http://llvm.org/viewvc/llvm-project?rev=345958&view=rev Log: [LLDB] - Add support for DW_FORM_rnglistx and relative DW_RLE_* entries. This adds support for DW_RLE_base_addressx, DW_RLE_startx_endx, DW_RLE_startx_length, DW_FORM_rnglistx. Differential revision: https://reviews.llvm.org/D53929 Added: lldb/trunk/lit/Breakpoint/Inputs/debug_rnglistx_rlex.yaml lldb/trunk/lit/Breakpoint/debug_rnglistx_rlex.test Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp Added: lldb/trunk/lit/Breakpoint/Inputs/debug_rnglistx_rlex.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/debug_rnglistx_rlex.yaml?rev=345958&view=auto == --- lldb/trunk/lit/Breakpoint/Inputs/debug_rnglistx_rlex.yaml (added) +++ lldb/trunk/lit/Breakpoint/Inputs/debug_rnglistx_rlex.yaml Fri Nov 2 02:03:25 2018 @@ -0,0 +1,57 @@ +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data:ELFDATA2LSB + Type:ET_EXEC + Machine: EM_X86_64 + Entry: 0x00201000 +Sections: + - Name:.text +Type:SHT_PROGBITS +Flags: [ SHF_ALLOC, SHF_EXECINSTR ] +Address: 0x00201000 +AddressAlign:0x0010 +Content: 31ED4989D15E4889E24883E4F0505449C7C08011200048C7C11011200048C7C700112000E89701F455B810202000483D102020004889E57417B84885C0740D5DBF10202000FFE00F1F445DC3660F1F44BE10202000554881EE102020004889E548C1FE034889F048C1E83F4801C648D1FE7415B84885C0740B5DBF10202000FFE00F1F005DC3660F1F44803D592F007517554889E5E87EFFC605472F015DC30F1F44F3C30F1F4000662E0F1F8400554889E55DEB89CCC3CCC3CC31C0C3CC415741564189FF415541544C8D25E61E55488D2DE61E534989F64989D54C29E54883EC0848C1FD03E843004885ED742031DB0F1F84004C89EA4C89F64489FF41FF14DC4883C3014839EB75EA4883C4085B5D415C415D415E415FC390662E0F1F8400F3C3 + - Name:.debug_str_offsets +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 28000500300067002800760024006F0074002200 + - Name:.debug_str +Type:SHT_PROGBITS +Flags: [ SHF_MERGE, SHF_STRINGS ] +AddressAlign:0x0001 +Content: 2F686F6D652F756D622F74657374735F323031382F3131345F726E676C69737473007900696E74005F5A336261726900636C616E672076657273696F6E20382E302E3020287472756E6B203334353639392920286C6C766D2F7472756E6B203334353530362900746573742E6363006D61696E00780062617200 + - Name:.debug_loclists +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: '15000500080003000301005503020101005000' + - Name:.debug_abbrev +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 011101252513050325721710171B2573171101552374178C0117022E0B120640187A196E2503253A0B3B0B49133F19030500021703253A0B3B0B4913042E0B120640187A1903253A0B3B0B49133F190534001C0D03253A0B3B0B491306240003253E0B0B0B00 + - Name:.debug_info +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 6600050001080100040001080002080C000C00020004000157030401036500030C000701036504010600015706010765000501080108650605050400 + - Name:.debug_rnglists +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: '1300050008000100040003000403010600' + - Name:.debug_macinfo +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: '00' + - Name:.debug_addr +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 1C0005000800E0102000F0102000E3102000 + - Name:.debug_line +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 8200050008004C00010101FB0E0D000101010100010101011F0103011F020F051E0222FC42F1EAF1396417A8FBE442FBADC70322FC42F1EAF1396417A8FBE442FBADC703000902E010200014050B0A130504063C0201000101000902F01020001805030A140206000101 + - Name:.debug_line_st
[Lldb-commits] [lldb] r346848 - [LLDB] - Support the single file split DWARF.
Author: grimar Date: Wed Nov 14 02:35:14 2018 New Revision: 346848 URL: http://llvm.org/viewvc/llvm-project?rev=346848&view=rev Log: [LLDB] - Support the single file split DWARF. DWARF5 spec describes a single file split dwarf case (when .dwo sections are in the .o files). Problem is that LLDB does not work correctly in that case. The issue is that, for example, both .debug_info and .debug_info.dwo has the same type: eSectionTypeDWARFDebugInfo. And when code searches section by type it might find the regular debug section and not the .dwo one. The patch fixes that. With it, LLDB is able to work with output compiled with -gsplit-dwarf=single flag correctly. Differential revision: https://reviews.llvm.org/D52296 Added: lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.o.yaml lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.yaml lldb/trunk/lit/Breakpoint/single-file-split-dwarf.test Modified: lldb/trunk/include/lldb/lldb-enumerations.h lldb/trunk/source/Core/Section.cpp lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h lldb/trunk/source/Symbol/ObjectFile.cpp Modified: lldb/trunk/include/lldb/lldb-enumerations.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-enumerations.h?rev=346848&r1=346847&r2=346848&view=diff == --- lldb/trunk/include/lldb/lldb-enumerations.h (original) +++ lldb/trunk/include/lldb/lldb-enumerations.h Wed Nov 14 02:35:14 2018 @@ -708,6 +708,10 @@ enum SectionType { eSectionTypeDWARFDebugLineStr, // DWARF v5 .debug_line_str eSectionTypeDWARFDebugRngLists, // DWARF v5 .debug_rnglists eSectionTypeDWARFDebugLocLists, // DWARF v5 .debug_loclists + eSectionTypeDWARFDebugAbbrevDwo, + eSectionTypeDWARFDebugInfoDwo, + eSectionTypeDWARFDebugStrDwo, + eSectionTypeDWARFDebugStrOffsetsDwo, }; FLAGS_ENUM(EmulateInstructionOptions){ Added: lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.o.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.o.yaml?rev=346848&view=auto == --- lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.o.yaml (added) +++ lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.o.yaml Wed Nov 14 02:35:14 2018 @@ -0,0 +1,84 @@ +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data:ELFDATA2LSB + Type:ET_REL + Machine: EM_X86_64 +Sections: + - Name:.text +Type:SHT_PROGBITS +Flags: [ SHF_ALLOC, SHF_EXECINSTR ] +AddressAlign:0x0010 +Content: 554889E531C0C745FC5DC390554889E55DC3 + - Name:.debug_str_offsets +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 0C000500 + - Name:.debug_str +Type:SHT_PROGBITS +Flags: [ SHF_MERGE, SHF_STRINGS ] +AddressAlign:0x0001 +Content: 746573742E6F002F686F6D652F756D622F74657374735F323031382F39355F6C6C64622F726570726F2F6477617266355F73706C69745F73696E676C655F66696C652F707265706172655F73616D706C65006D61696E00666F6F005F5A33666F6F7600696E7400 + - Name:.debug_loc.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE ] +AddressAlign:0x0001 +Content: '' + - Name:.debug_abbrev +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 01110010177217B042251B25B44219B342171101120600 + - Name:.debug_info +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 2B00050004083F4B7684A29835B90100011600 + - Name:.debug_macinfo +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: '00' + - Name:.debug_str_offsets.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE ] +AddressAlign:0x0001 +Content: 250007002A00330038003C004400 + - Name:.debug_str.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE, SHF_MERGE, SHF_STRINGS ] +AddressAlign:0x0001 +Content: 746573742E6F00636C616E672076657273696F6E20382E302E3020287472756E6B203334323731382900746573742E637070006D61696E00696E74005F5A33666F6F7600666F6F00 + - Name:.debug_info.dwo +Typ
[Lldb-commits] [lldb] r346853 - Revert r346848 "[LLDB] - Support the single file split DWARF."
Author: grimar Date: Wed Nov 14 04:04:31 2018 New Revision: 346853 URL: http://llvm.org/viewvc/llvm-project?rev=346853&view=rev Log: Revert r346848 "[LLDB] - Support the single file split DWARF." It broke BB: http://green.lab.llvm.org/green/job/lldb-cmake/12522/testReport/junit/LLDB/Breakpoint/single_file_split_dwarf_test/ Removed: lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.o.yaml lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.yaml lldb/trunk/lit/Breakpoint/single-file-split-dwarf.test Modified: lldb/trunk/include/lldb/lldb-enumerations.h lldb/trunk/source/Core/Section.cpp lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h lldb/trunk/source/Symbol/ObjectFile.cpp Modified: lldb/trunk/include/lldb/lldb-enumerations.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-enumerations.h?rev=346853&r1=346852&r2=346853&view=diff == --- lldb/trunk/include/lldb/lldb-enumerations.h (original) +++ lldb/trunk/include/lldb/lldb-enumerations.h Wed Nov 14 04:04:31 2018 @@ -708,10 +708,6 @@ enum SectionType { eSectionTypeDWARFDebugLineStr, // DWARF v5 .debug_line_str eSectionTypeDWARFDebugRngLists, // DWARF v5 .debug_rnglists eSectionTypeDWARFDebugLocLists, // DWARF v5 .debug_loclists - eSectionTypeDWARFDebugAbbrevDwo, - eSectionTypeDWARFDebugInfoDwo, - eSectionTypeDWARFDebugStrDwo, - eSectionTypeDWARFDebugStrOffsetsDwo, }; FLAGS_ENUM(EmulateInstructionOptions){ Removed: lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.o.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.o.yaml?rev=346852&view=auto == --- lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.o.yaml (original) +++ lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.o.yaml (removed) @@ -1,84 +0,0 @@ !ELF -FileHeader: - Class: ELFCLASS64 - Data:ELFDATA2LSB - Type:ET_REL - Machine: EM_X86_64 -Sections: - - Name:.text -Type:SHT_PROGBITS -Flags: [ SHF_ALLOC, SHF_EXECINSTR ] -AddressAlign:0x0010 -Content: 554889E531C0C745FC5DC390554889E55DC3 - - Name:.debug_str_offsets -Type:SHT_PROGBITS -AddressAlign:0x0001 -Content: 0C000500 - - Name:.debug_str -Type:SHT_PROGBITS -Flags: [ SHF_MERGE, SHF_STRINGS ] -AddressAlign:0x0001 -Content: 746573742E6F002F686F6D652F756D622F74657374735F323031382F39355F6C6C64622F726570726F2F6477617266355F73706C69745F73696E676C655F66696C652F707265706172655F73616D706C65006D61696E00666F6F005F5A33666F6F7600696E7400 - - Name:.debug_loc.dwo -Type:SHT_PROGBITS -Flags: [ SHF_EXCLUDE ] -AddressAlign:0x0001 -Content: '' - - Name:.debug_abbrev -Type:SHT_PROGBITS -AddressAlign:0x0001 -Content: 01110010177217B042251B25B44219B342171101120600 - - Name:.debug_info -Type:SHT_PROGBITS -AddressAlign:0x0001 -Content: 2B00050004083F4B7684A29835B90100011600 - - Name:.debug_macinfo -Type:SHT_PROGBITS -AddressAlign:0x0001 -Content: '00' - - Name:.debug_str_offsets.dwo -Type:SHT_PROGBITS -Flags: [ SHF_EXCLUDE ] -AddressAlign:0x0001 -Content: 250007002A00330038003C004400 - - Name:.debug_str.dwo -Type:SHT_PROGBITS -Flags: [ SHF_EXCLUDE, SHF_MERGE, SHF_STRINGS ] -AddressAlign:0x0001 -Content: 746573742E6F00636C616E672076657273696F6E20382E302E3020287472756E6B203334323731382900746573742E637070006D61696E00696E74005F5A33666F6F7600666F6F00 - - Name:.debug_info.dwo -Type:SHT_PROGBITS -Flags: [ SHF_EXCLUDE ] -AddressAlign:0x0001 -Content: 3600050005083F4B7684A29835B901000104000202000F0001560301013500030106000156050601050404050400 - - Name:.debug_abbrev.dwo -Type:SHT_PROGBITS -Flags: [ SHF_EXCLUDE ] -AddressAlign:0x0001 -Co
[Lldb-commits] [lldb] r346855 - [LLDB] - Recommit r346848 "[LLDB] - Support the single file split DWARF.".
Author: grimar Date: Wed Nov 14 05:01:15 2018 New Revision: 346855 URL: http://llvm.org/viewvc/llvm-project?rev=346855&view=rev Log: [LLDB] - Recommit r346848 "[LLDB] - Support the single file split DWARF.". Test cases were updated to not use the local compilation dir which is different between development pc and build bots. Original commit message: [LLDB] - Support the single file split DWARF. DWARF5 spec describes a single file split dwarf case (when .dwo sections are in the .o files). Problem is that LLDB does not work correctly in that case. The issue is that, for example, both .debug_info and .debug_info.dwo has the same type: eSectionTypeDWARFDebugInfo. And when code searches section by type it might find the regular debug section and not the .dwo one. The patch fixes that. With it, LLDB is able to work with output compiled with -gsplit-dwarf=single flag correctly. Differential revision: https://reviews.llvm.org/D52403 Added: lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.o.yaml lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.yaml lldb/trunk/lit/Breakpoint/single-file-split-dwarf.test Modified: lldb/trunk/include/lldb/lldb-enumerations.h lldb/trunk/source/Core/Section.cpp lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h lldb/trunk/source/Symbol/ObjectFile.cpp Modified: lldb/trunk/include/lldb/lldb-enumerations.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-enumerations.h?rev=346855&r1=346854&r2=346855&view=diff == --- lldb/trunk/include/lldb/lldb-enumerations.h (original) +++ lldb/trunk/include/lldb/lldb-enumerations.h Wed Nov 14 05:01:15 2018 @@ -708,6 +708,10 @@ enum SectionType { eSectionTypeDWARFDebugLineStr, // DWARF v5 .debug_line_str eSectionTypeDWARFDebugRngLists, // DWARF v5 .debug_rnglists eSectionTypeDWARFDebugLocLists, // DWARF v5 .debug_loclists + eSectionTypeDWARFDebugAbbrevDwo, + eSectionTypeDWARFDebugInfoDwo, + eSectionTypeDWARFDebugStrDwo, + eSectionTypeDWARFDebugStrOffsetsDwo, }; FLAGS_ENUM(EmulateInstructionOptions){ Added: lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.o.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.o.yaml?rev=346855&view=auto == --- lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.o.yaml (added) +++ lldb/trunk/lit/Breakpoint/Inputs/single-file-split-dwarf.o.yaml Wed Nov 14 05:01:15 2018 @@ -0,0 +1,84 @@ +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data:ELFDATA2LSB + Type:ET_REL + Machine: EM_X86_64 +Sections: + - Name:.text +Type:SHT_PROGBITS +Flags: [ SHF_ALLOC, SHF_EXECINSTR ] +AddressAlign:0x0010 +Content: 554889E531C0C745FC5DC390554889E55DC3 + - Name:.debug_str_offsets +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 0C000500 + - Name:.debug_str +Type:SHT_PROGBITS +Flags: [ SHF_MERGE, SHF_STRINGS ] +AddressAlign:0x0001 +Content: 746573742E6F002F686F6D652F756D622F74657374735F323031382F39355F6C6C64622F726570726F2F6477617266355F73706C69745F73696E676C655F66696C652F707265706172655F73616D706C65006D61696E00666F6F005F5A33666F6F7600696E7400 + - Name:.debug_loc.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE ] +AddressAlign:0x0001 +Content: '' + - Name:.debug_abbrev +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 01110010177217B042251B25B44219B342171101120600 + - Name:.debug_info +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 2B00050004083F4B7684A29835B90100011600 + - Name:.debug_macinfo +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: '00' + - Name:.debug_str_offsets.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE ] +AddressAlign:0x0001 +Content: 250007002A00330038003C004400 + - Name:.debug_str.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE, SHF_MERGE, SHF_STRINGS ] +AddressAlign:0x0
[Lldb-commits] [lldb] r347842 - [LLDB] - Fix setting the breakpoints when -gsplit-dwarf and DWARF 5 were used for building the executable.
Author: grimar Date: Thu Nov 29 00:16:07 2018 New Revision: 347842 URL: http://llvm.org/viewvc/llvm-project?rev=347842&view=rev Log: [LLDB] - Fix setting the breakpoints when -gsplit-dwarf and DWARF 5 were used for building the executable. The issue happens because starting from DWARF v5 DW_AT_addr_base attribute should be used instead of DW_AT_GNU_addr_base. LLDB does not do that and we end up reading the .debug_addr header as section content (as addresses) instead of skipping it and reading the real addresses. Then LLDB is unable to match 2 similar locations and thinks they are different. Differential revision: https://reviews.llvm.org/D54751 Added: lldb/trunk/lit/Breakpoint/Inputs/split-dwarf-5-addrbase.dwo.yaml lldb/trunk/lit/Breakpoint/Inputs/split-dwarf-5-addrbase.yaml lldb/trunk/lit/Breakpoint/split-dwarf-5-addrbase.test Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp Added: lldb/trunk/lit/Breakpoint/Inputs/split-dwarf-5-addrbase.dwo.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/split-dwarf-5-addrbase.dwo.yaml?rev=347842&view=auto == --- lldb/trunk/lit/Breakpoint/Inputs/split-dwarf-5-addrbase.dwo.yaml (added) +++ lldb/trunk/lit/Breakpoint/Inputs/split-dwarf-5-addrbase.dwo.yaml Thu Nov 29 00:16:07 2018 @@ -0,0 +1,35 @@ +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data:ELFDATA2LSB + Type:ET_REL + Machine: EM_X86_64 +Sections: + - Name:.debug_loc.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE ] +AddressAlign:0x0001 +Content: '' + - Name:.debug_str_offsets.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE ] +AddressAlign:0x0001 +Content: 250009002C0034003C0040004500 + - Name:.debug_str.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE, SHF_MERGE, SHF_STRINGS ] +AddressAlign:0x0001 +Content: 746573742E64776F00636C616E672076657273696F6E20382E302E3020287472756E6B203334373239392900746573742E6363005F5A3362617A760062617A006D61696E00696E7400 + - Name:.debug_info.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE ] +AddressAlign:0x0001 +Content: 360005000508E93484C441B7E84A0100010400020200060001560304010103011C00015605010435000406050400 + - Name:.debug_abbrev.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE ] +AddressAlign:0x0001 +Content: 011101B04225252513050325022E00111B120640186E2503253A0B3B0B3F19032E00111B1206401803253A0B3B0B49133F1904240003253E0B0B0B00 +Symbols: {} +DynamicSymbols: {} +... Added: lldb/trunk/lit/Breakpoint/Inputs/split-dwarf-5-addrbase.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/split-dwarf-5-addrbase.yaml?rev=347842&view=auto == --- lldb/trunk/lit/Breakpoint/Inputs/split-dwarf-5-addrbase.yaml (added) +++ lldb/trunk/lit/Breakpoint/Inputs/split-dwarf-5-addrbase.yaml Thu Nov 29 00:16:07 2018 @@ -0,0 +1,61 @@ +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data:ELFDATA2LSB + Type:ET_EXEC + Machine: EM_X86_64 + Entry: 0x00400440 +Sections: + - Name:.text +Type:SHT_PROGBITS +Flags: [ SHF_ALLOC, SHF_EXECINSTR ] +Address: 0x00400440 +AddressAlign:0x0010 +Content: 31ED4989D15E4889E24883E4F0505449C7C0C005400048C7C15005400048C7C730054000E8B7FFF4660F1F4455B820204000483D202040004889E57417B84885C0740D5DBF20204000FFE00F1F445DC3660F1F44BE20204000554881EE202040004889E548C1FE034889F048C1E83F4801C648D1FE7415B84885C0740B5DBF20204000FFE00F1F005DC3660F1F44803D391B007517554889E5E87EFFC605271B015DC30F1F44F3C30F1F4000662E0F1F8400554889E55DEB89660F1F8400554889E55DC3662E0F1F8400554889E54883EC10C745FCE8DCFF31C04883C4105DC30F1F4000415741564189FF415541544C8D25A61855488D2DA618534989F64989D54C29E54883EC0848C1FD03E86FFE4885ED742031DB0F1F84004C89EA4C89F64489FF41FF14DC4883C3014839EB75EA4883C4085B5D415C415D415E415FC390662E0F1F8400F3C3 + - Name:.debug_str_offsets +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 0C0005000900 + - Name:.debug_str +Type:SHT_PROGBITS +Flags: [ SHF_MERGE, SHF_STRINGS ] +AddressAlign:0x0001 +Content: 7465737
[Lldb-commits] [lldb] r347859 - [LLDB] - Improve the support of .debug_str_offsets/.debug_str_offsets.dwo
Author: grimar Date: Thu Nov 29 04:44:10 2018 New Revision: 347859 URL: http://llvm.org/viewvc/llvm-project?rev=347859&view=rev Log: [LLDB] - Improve the support of .debug_str_offsets/.debug_str_offsets.dwo A skeleton compilation unit may contain the DW_AT_str_offsets_base attribute that points to the first string offset of the CU contribution to the .debug_str_offsets. At the same time, when we use split dwarf, the corresponding split debug unit also may use DW_FORM_strx* forms pointing to its own .debug_str_offsets.dwo. In that case, DWO does not contain DW_AT_str_offsets_base, but LLDB still need to know and skip the .debug_str_offsets.dwo section header to access the offsets. The patch implements the support of DW_AT_str_offsets_base. Differential revision: https://reviews.llvm.org/D54844 Added: lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file1.dwo.yaml lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file2.dwo.yaml lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-main.yaml lldb/trunk/lit/Breakpoint/split-dwarf5-debug-stroffsets.test Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFUnit.h Added: lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file1.dwo.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file1.dwo.yaml?rev=347859&view=auto == --- lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file1.dwo.yaml (added) +++ lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file1.dwo.yaml Thu Nov 29 04:44:10 2018 @@ -0,0 +1,40 @@ +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data:ELFDATA2LSB + Type:ET_REL + Machine: EM_X86_64 +Sections: + - Name:.debug_loc.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE ] +AddressAlign:0x0001 +Content: '' + - Name:.debug_str_offsets.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE ] +AddressAlign:0x0001 +Content: 5C0005000A002D0037004000500052005A0060006200660076007F0084008A008F009400960099009C00A500B500 + - Name:.debug_str.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE, SHF_MERGE, SHF_STRINGS ] +AddressAlign:0x0001 +Content: 66696C65312E64776F00636C616E672076657273696F6E20382E302E3020287472756E6B20333437323939290066696C65312E637070007E73747275637431005F5A4E37737472756374313166457600660073747275637431005F5A316776006700696E74005F5A4E377374727563743144324576005F5A347465737476007465737400666C6F6174006D61696E00746869730078007331007332007E73747275637432005F5A4E377374727563743231664576007374727563743200 + - Name:.debug_info.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE ] +AddressAlign:0x0001 +Content: D900050005088D03E0CB5B41F18901000104000202000B00015607080103B400030406010201040302020540060405020300072A00080132000156580001070A390291780FBC000A000B029174100108B4000C0206000156010B3A000203090001560B0C010DB8000D046E0001560E0111B4000B0291781101152A000B029170120116C10E0905040E0D0404072A000304150102060413020705D706140502080007C1 + - Name:.debug_abbrev.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE ] +AddressAlign:0x0001 +Content: 011101B04225252513050325022E00111B120640186E2503253A0B3B0B49133F19031301360B03250B0B3A0B3B0B042E0103253A0B3B0B3C193F1905050049133419062E006E2503253A0B3B0B3C193F19070F004913082E0B1206401864133A0B3B0B6E25471309050002180325491334190A0B0155230B3400021803253A0B3B0B49130C2E00111B120640183A0B3B0B47130D2E0B1206401803253A0B3B0B49133F190E240003253E0B0B0B00 + - Name:.debug_rnglists.dwo +Type:SHT_PROGBITS +Flags: [ SHF_EXCLUDE ] +AddressAlign:0x0001 +Content: 150005000800010004000101040C1F04253200 +Symbols: {} +DynamicSymbols: {} +... Added: lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file2.dwo.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file2.dwo.yaml?rev=347859&view=auto == --- lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets
[Lldb-commits] [lldb] r351313 - [lldb] - Fix crash when listing the history with the key up.
Author: grimar Date: Wed Jan 16 01:27:04 2019 New Revision: 351313 URL: http://llvm.org/viewvc/llvm-project?rev=351313&view=rev Log: [lldb] - Fix crash when listing the history with the key up. This is https://bugs.llvm.org/show_bug.cgi?id=40112, Currently, lldb crashes after pressing the up arrow key when listing the history for expressions. The patch fixes the mistype that was a reason. Differential revision: https://reviews.llvm.org/D56014 Modified: lldb/trunk/source/Host/common/Editline.cpp Modified: lldb/trunk/source/Host/common/Editline.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/Editline.cpp?rev=351313&r1=351312&r2=351313&view=diff == --- lldb/trunk/source/Host/common/Editline.cpp (original) +++ lldb/trunk/source/Host/common/Editline.cpp Wed Jan 16 01:27:04 2019 @@ -443,7 +443,7 @@ unsigned char Editline::RecallHistory(bo m_live_history_lines = m_input_lines; m_in_history = true; } else { -if (history_w(pHistory, &history_event, earlier ? H_NEXT : H_PREV) == -1) { +if (history_w(pHistory, &history_event, earlier ? H_PREV : H_NEXT) == -1) { // Can't move earlier than the earliest entry if (earlier) return CC_ERROR; ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r357600 - [LLDB] - Update the test cases after yaml2obj change.
Author: grimar Date: Wed Apr 3 08:28:35 2019 New Revision: 357600 URL: http://llvm.org/viewvc/llvm-project?rev=357600&view=rev Log: [LLDB] - Update the test cases after yaml2obj change. https://reviews.llvm.org/D60122 (r357595) changed the symbols description format in yaml2obj. This change updates the LLDB tests. Modified: lldb/trunk/lit/Breakpoint/Inputs/split-dwarf-5-addrbase.dwo.yaml lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file1.dwo.yaml lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file2.dwo.yaml lldb/trunk/lit/Modules/ELF/build-id-case.yaml lldb/trunk/lit/Modules/ELF/duplicate-section.yaml lldb/trunk/unittests/Core/Inputs/mangled-function-names.yaml lldb/trunk/unittests/ObjectFile/ELF/Inputs/debug-info-relocations.pcm.yaml lldb/trunk/unittests/ObjectFile/ELF/Inputs/sections-resolve-consistently.yaml lldb/trunk/unittests/Symbol/Inputs/basic-call-frame-info.yaml Modified: lldb/trunk/lit/Breakpoint/Inputs/split-dwarf-5-addrbase.dwo.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/split-dwarf-5-addrbase.dwo.yaml?rev=357600&r1=357599&r2=357600&view=diff == --- lldb/trunk/lit/Breakpoint/Inputs/split-dwarf-5-addrbase.dwo.yaml (original) +++ lldb/trunk/lit/Breakpoint/Inputs/split-dwarf-5-addrbase.dwo.yaml Wed Apr 3 08:28:35 2019 @@ -30,6 +30,4 @@ Sections: Flags: [ SHF_EXCLUDE ] AddressAlign:0x0001 Content: 011101B04225252513050325022E00111B120640186E2503253A0B3B0B3F19032E00111B1206401803253A0B3B0B49133F1904240003253E0B0B0B00 -Symbols: {} -DynamicSymbols: {} ... Modified: lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file1.dwo.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file1.dwo.yaml?rev=357600&r1=357599&r2=357600&view=diff == --- lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file1.dwo.yaml (original) +++ lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file1.dwo.yaml Wed Apr 3 08:28:35 2019 @@ -35,6 +35,4 @@ Sections: Flags: [ SHF_EXCLUDE ] AddressAlign:0x0001 Content: 150005000800010004000101040C1F04253200 -Symbols: {} -DynamicSymbols: {} ... Modified: lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file2.dwo.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file2.dwo.yaml?rev=357600&r1=357599&r2=357600&view=diff == --- lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file2.dwo.yaml (original) +++ lldb/trunk/lit/Breakpoint/Inputs/split-dwarf5-debug-stroffsets-file2.dwo.yaml Wed Apr 3 08:28:35 2019 @@ -35,6 +35,4 @@ Sections: Flags: [ SHF_EXCLUDE ] AddressAlign:0x0001 Content: 150005000800010004000100040C1F04253200 -Symbols: {} -DynamicSymbols: {} ... Modified: lldb/trunk/lit/Modules/ELF/build-id-case.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Modules/ELF/build-id-case.yaml?rev=357600&r1=357599&r2=357600&view=diff == --- lldb/trunk/lit/Modules/ELF/build-id-case.yaml (original) +++ lldb/trunk/lit/Modules/ELF/build-id-case.yaml Wed Apr 3 08:28:35 2019 @@ -32,10 +32,9 @@ Sections: AddressAlign:0x0008 Content: DEADBEEFBAADF00D Symbols: - Local: -- Name:main - Type:STT_FUNC - Section: .text - Value: 0x004003D0 - Size:0x0008 + - Name:main +Type:STT_FUNC +Section: .text +Value: 0x004003D0 +Size:0x0008 ... Modified: lldb/trunk/lit/Modules/ELF/duplicate-section.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Modules/ELF/duplicate-section.yaml?rev=357600&r1=357599&r2=357600&view=diff == --- lldb/trunk/lit/Modules/ELF/duplicate-section.yaml (original) +++ lldb/trunk/lit/Modules/ELF/duplicate-section.yaml Wed Apr 3 08:28:35 2019 @@ -33,10 +33,9 @@ Sections: AddressAlign:0x0008 Content: DEADBEEFBAADF00D Symbols: - Local: -- Name:main - Type:STT_FUNC - Section: .text - Value: 0x004003D0 - Size:0x0008 + - Name:main +Type:STT_FUNC +Section: .text +Value: 0x000
[Lldb-commits] [lldb] r344119 - [LLDB] - Add basic support for .debug_rnglists section (DWARF5)
Author: grimar Date: Wed Oct 10 01:11:15 2018 New Revision: 344119 URL: http://llvm.org/viewvc/llvm-project?rev=344119&view=rev Log: [LLDB] - Add basic support for .debug_rnglists section (DWARF5) This adds a basic support of the .debug_rnglists section. Only the DW_RLE_start_length and DW_RLE_end_of_list entries are supported. Differential revision: https://reviews.llvm.org/D52981 Added: lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_basic.yaml lldb/trunk/lit/Breakpoint/debug_rnglist_basic.test Modified: lldb/trunk/include/lldb/lldb-enumerations.h lldb/trunk/source/Core/Section.cpp lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h lldb/trunk/source/Symbol/ObjectFile.cpp Modified: lldb/trunk/include/lldb/lldb-enumerations.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-enumerations.h?rev=344119&r1=344118&r2=344119&view=diff == --- lldb/trunk/include/lldb/lldb-enumerations.h (original) +++ lldb/trunk/include/lldb/lldb-enumerations.h Wed Oct 10 01:11:15 2018 @@ -675,6 +675,7 @@ enum SectionType { eSectionTypeDWARFDebugNames, // DWARF v5 .debug_names eSectionTypeOther, eSectionTypeDWARFDebugLineStr, // DWARF v5 .debug_line_str + eSectionTypeDWARFDebugRngLists, // DWARF v5 .debug_rnglists }; FLAGS_ENUM(EmulateInstructionOptions){ Added: lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_basic.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_basic.yaml?rev=344119&view=auto == --- lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_basic.yaml (added) +++ lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_basic.yaml Wed Oct 10 01:11:15 2018 @@ -0,0 +1,50 @@ +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data:ELFDATA2LSB + Type:ET_EXEC + Machine: EM_X86_64 + Entry: 0x00400440 +Sections: + - Name:.text +Type:SHT_PROGBITS +Flags: [ SHF_ALLOC, SHF_EXECINSTR ] +Address: 0x00400440 +AddressAlign:0x0010 +Content: 31ED4989D15E4889E24883E4F0505449C7C0C005400048C7C15005400048C7C730054000E8B7FFF4660F1F4455B820204000483D202040004889E57417B84885C0740D5DBF20204000FFE00F1F445DC3660F1F44BE20204000554881EE202040004889E548C1FE034889F048C1E83F4801C648D1FE7415B84885C0740B5DBF20204000FFE00F1F005DC3660F1F44803D391B007517554889E5E87EFFC605271B015DC30F1F44F3C30F1F4000662E0F1F8400554889E55DEB89900F1F8400554889E5B801005DC30F1F44554889E54883EC10C745FCE8DCFF4883C4105DC3660F1F44415741564189FF415541544C8D25A61855488D2DA618534989F64989D54C29E54883EC0848C1FD03E86FFE4885ED742031DB0F1F84004C89EA4C89F64489FF41FF14DC4883C3014839EB75EA4883C4085B5D415C415D415E415FC390662E0F1F8400F3C3 + - Name:.debug_str_offsets +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 250023002C005D00650069006D00 + - Name:.debug_str +Type:SHT_PROGBITS +Flags: [ SHF_MERGE, SHF_STRINGS ] +AddressAlign:0x0001 +Content: 636C616E672076657273696F6E20382E302E3020287472756E6B203334333438372900746573742E637070002F686F6D652F756D622F74657374735F323031382F313033726E676C697374732F6C6C64622F63726561746574657374005F5A337A656476007A656400696E74006D61696E00 + - Name:.debug_abbrev +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 011101252513050325721710171B25110155177417022E001101120640186E2503253A0B3B0B49133F19032E0011011206401803253A0B3B0B49133F1904240003253E0B0B0B00 + - Name:.debug_info +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 58000500010801000400010800020C000C000220054B00015603040101570003300540001A00015606010557000405050400 + - Name:.debug_rnglists +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 1D00050008000720054B07300540001A00 + - Name:.debug_macinfo +Type:SHT_PROGBITS +AddressAlign:0x0001 +
[Lldb-commits] [lldb] r345016 - [LLDB] - Implement the support for the .debug_loclists section.
Author: grimar Date: Tue Oct 23 02:46:15 2018 New Revision: 345016 URL: http://llvm.org/viewvc/llvm-project?rev=345016&view=rev Log: [LLDB] - Implement the support for the .debug_loclists section. This implements the support for .debug_loclists section, which is DWARF 5 version of .debug_loc. Currently, clang is able to emit it with the use of D53365. Differential revision: https://reviews.llvm.org/D53436 Modified: lldb/trunk/include/lldb/Expression/DWARFExpression.h lldb/trunk/include/lldb/lldb-enumerations.h lldb/trunk/source/Core/Section.cpp lldb/trunk/source/Expression/DWARFExpression.cpp lldb/trunk/source/Expression/IRExecutionUnit.cpp lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp lldb/trunk/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.cpp lldb/trunk/source/Symbol/ObjectFile.cpp Modified: lldb/trunk/include/lldb/Expression/DWARFExpression.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Expression/DWARFExpression.h?rev=345016&r1=345015&r2=345016&view=diff == --- lldb/trunk/include/lldb/Expression/DWARFExpression.h (original) +++ lldb/trunk/include/lldb/Expression/DWARFExpression.h Tue Oct 23 02:46:15 2018 @@ -41,6 +41,7 @@ public: NonLocationList, // Not a location list RegularLocationList, // Location list format used in non-split dwarf files SplitDwarfLocationList, // Location list format used in split dwarf files +LocLists, // Location list format used in DWARF v5 (.debug_loclists). }; //-- Modified: lldb/trunk/include/lldb/lldb-enumerations.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-enumerations.h?rev=345016&r1=345015&r2=345016&view=diff == --- lldb/trunk/include/lldb/lldb-enumerations.h (original) +++ lldb/trunk/include/lldb/lldb-enumerations.h Tue Oct 23 02:46:15 2018 @@ -676,6 +676,7 @@ enum SectionType { eSectionTypeOther, eSectionTypeDWARFDebugLineStr, // DWARF v5 .debug_line_str eSectionTypeDWARFDebugRngLists, // DWARF v5 .debug_rnglists + eSectionTypeDWARFDebugLocLists, // DWARF v5 .debug_loclists }; FLAGS_ENUM(EmulateInstructionOptions){ Modified: lldb/trunk/source/Core/Section.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Section.cpp?rev=345016&r1=345015&r2=345016&view=diff == --- lldb/trunk/source/Core/Section.cpp (original) +++ lldb/trunk/source/Core/Section.cpp Tue Oct 23 02:46:15 2018 @@ -77,6 +77,8 @@ const char *Section::GetTypeAsCString() return "dwarf-line-str"; case eSectionTypeDWARFDebugLoc: return "dwarf-loc"; + case eSectionTypeDWARFDebugLocLists: +return "dwarf-loclists"; case eSectionTypeDWARFDebugMacInfo: return "dwarf-macinfo"; case eSectionTypeDWARFDebugMacro: Modified: lldb/trunk/source/Expression/DWARFExpression.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/DWARFExpression.cpp?rev=345016&r1=345015&r2=345016&view=diff == --- lldb/trunk/source/Expression/DWARFExpression.cpp (original) +++ lldb/trunk/source/Expression/DWARFExpression.cpp Tue Oct 23 02:46:15 2018 @@ -3037,6 +3037,7 @@ bool DWARFExpression::AddressRangeForLoc high_pc = debug_loc_data.GetAddress(offset_ptr); return true; case SplitDwarfLocationList: + case LocLists: switch (debug_loc_data.GetU8(offset_ptr)) { case DW_LLE_end_of_list: return false; @@ -3054,8 +3055,19 @@ bool DWARFExpression::AddressRangeForLoc high_pc = low_pc + length; return true; } +case DW_LLE_start_length: { + low_pc = debug_loc_data.GetAddress(offset_ptr); + high_pc = low_pc + debug_loc_data.GetULEB128(offset_ptr); + return true; +} +case DW_LLE_start_end: { + low_pc = debug_loc_data.GetAddress(offset_ptr); + high_pc = debug_loc_data.GetAddress(offset_ptr); + return true; +} default: // Not supported entry type + lldbassert(false && "Not supported location list type"); return false; } } Modified: lldb/trunk/source/Expression/IRExecutionUnit.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/IRExecutionUnit.cpp?rev=345016&r1=345015&r2=345016&view=diff == --- lldb/trunk/sou
[Lldb-commits] [lldb] r344674 - [LLDB] - Add support for DW_RLE_start_end entries (.debug_rnglists)
Author: grimar Date: Wed Oct 17 00:37:26 2018 New Revision: 344674 URL: http://llvm.org/viewvc/llvm-project?rev=344674&view=rev Log: [LLDB] - Add support for DW_RLE_start_end entries (.debug_rnglists) DWARF5 describes DW_RLE_start_end as: This is a form of bounded range entry that has two target address operands. Each operand is the same size as used in DW_FORM_addr. These indicate the starting and ending addresses, respectively, that define the address range for which the following location is valid. The patch implements the support. Differential revision: https://reviews.llvm.org/D53193 Added: lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_rlestartend.yaml lldb/trunk/lit/Breakpoint/debug_rnglist_rlestartend.test Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp Added: lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_rlestartend.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_rlestartend.yaml?rev=344674&view=auto == --- lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_rlestartend.yaml (added) +++ lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_rlestartend.yaml Wed Oct 17 00:37:26 2018 @@ -0,0 +1,49 @@ +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data:ELFDATA2LSB + Type:ET_EXEC + Machine: EM_X86_64 + Entry: 0x00201000 +Sections: + - Name:.text +Type:SHT_PROGBITS +Flags: [ SHF_ALLOC, SHF_EXECINSTR ] +Address: 0x00201000 +AddressAlign:0x0010 +Content: 31ED4989D15E4889E24883E4F0505449C7C08011200048C7C11011200048C7C7F0102000E89701F455B810202000483D102020004889E57417B84885C0740D5DBF10202000FFE00F1F445DC3660F1F44BE10202000554881EE102020004889E548C1FE034889F048C1E83F4801C648D1FE7415B84885C0740B5DBF10202000FFE00F1F005DC3660F1F44803D592F007517554889E5E87EFFC605472F015DC30F1F44F3C30F1F4000662E0F1F8400554889E55DEB89CC554889E5B801005DC3CC554889E54883EC10C745FCE8DCFF4883C4105DC3415741564189FF415541544C8D25E61E55488D2DE61E534989F64989D54C29E54883EC0848C1FD03E843004885ED742031DB0F1F84004C89EA4C89F64489FF41FF14DC4883C3014839EB75EA4883C4085B5D415C415D415E415FC390662E0F1F8400F3C3 + - Name:.debug_str_offsets +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 250004002B003900620027003400 + - Name:.debug_str +Type:SHT_PROGBITS +Flags: [ SHF_MERGE, SHF_STRINGS ] +AddressAlign:0x0001 +Content: 696E7400636C616E672076657273696F6E20382E302E3020287472756E6B2033343430333529007A656400746573742E637070006D61696E002F686F6D652F756D622F74657374735F323031382F3130375F726E676C6973747374617274656E64005F5A337A65647600 + - Name:.debug_abbrev +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 011101252513050325721710171B25110155177417022E001101120640186E2503253A0B3B0B49133F19032E0011011206401803253A0B3B0B49133F1904240003253E0B0B0B00 + - Name:.debug_info +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 58000500010801000400010800020C000C0002E0102B00015603040101570003F01020001A00015606010557000405050400 + - Name:.debug_rnglists +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 2B000500080006E0102000EB1026F0102A1120 + - Name:.debug_macinfo +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: '00' + - Name:.debug_line +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 8200050008004C00010101FB0E0D000101010100010101011F01090003011F020F051E0200C404455D157064301CF8C713A4AC4CEE00C404455D157064301CF8C713A4AC4CEE000902E0102105030A4B0207000101000902F010200016050A0AE5050306580206000101 + - Name:.debug_line_str +Type:SHT_PROGBITS +Flags: [ SHF_MERGE, SHF_STRINGS ] +AddressAlign:0x0001 +Content: 746573742E637070002F686F6D652F756D622F74657374735F323031382F3130375F726E676C6973747374617274656E6400 +Symbols: Added: lldb/trunk/lit/Breakpoint/debug_rnglist_rlestartend.test URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/debug_rnglist_rlestartend.test?rev=344674&view=auto ===
[Lldb-commits] [lldb] r344122 - [LLDB] - Simplify. NFC.
Author: grimar Date: Wed Oct 10 01:49:17 2018 New Revision: 344122 URL: http://llvm.org/viewvc/llvm-project?rev=344122&view=rev Log: [LLDB] - Simplify. NFC. There are several places that call `FindRanges`, all of them use `Slide` to adjust the ranges found by the base address. All except one, which does the same manually in a loop. Patch updates it to use `Slide` for consistency. Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp?rev=344122&r1=344121&r2=344122&view=diff == --- lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp (original) +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp Wed Oct 10 01:49:17 2018 @@ -3336,14 +3336,7 @@ VariableSP SymbolFileDWARF::ParseVariabl // All DW_AT_start_scope are relative to the base address of the // compile unit. We add the compile unit base address to make // sure all the addresses are properly fixed up. - for (size_t i = 0, count = dwarf_scope_ranges.GetSize(); - i < count; ++i) { -const DWARFRangeList::Entry &range = -dwarf_scope_ranges.GetEntryRef(i); -scope_ranges.Append(range.GetRangeBase() + -die.GetCU()->GetBaseAddress(), -range.GetByteSize()); - } + dwarf_scope_ranges.Slide(die.GetCU()->GetBaseAddress()); } else { // TODO: Handle the case when DW_AT_start_scope have form // constant. The ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r345127 - [LLDB] - Add support for DW_RLE_base_address and DW_RLE_offset_pair entries (.debug_rnglists)
Author: grimar Date: Wed Oct 24 02:56:20 2018 New Revision: 345127 URL: http://llvm.org/viewvc/llvm-project?rev=345127&view=rev Log: [LLDB] - Add support for DW_RLE_base_address and DW_RLE_offset_pair entries (.debug_rnglists) The patch implements the support for DW_RLE_base_address and DW_RLE_offset_pair .debug_rnglists entries Differential revision: https://reviews.llvm.org/D53140 Added: lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_offset_pair.yaml lldb/trunk/lit/Breakpoint/debug_rnglist_offset_pair.test Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h Added: lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_offset_pair.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_offset_pair.yaml?rev=345127&view=auto == --- lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_offset_pair.yaml (added) +++ lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_offset_pair.yaml Wed Oct 24 02:56:20 2018 @@ -0,0 +1,53 @@ +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data:ELFDATA2LSB + Type:ET_EXEC + Machine: EM_X86_64 + Entry: 0x00400440 +Sections: + - Name:.text +Type:SHT_PROGBITS +Flags: [ SHF_ALLOC, SHF_EXECINSTR ] +Address: 0x00400440 +AddressAlign:0x0010 +Content: 31ED4989D15E4889E24883E4F0505449C7C0C005400048C7C15005400048C7C740054000E8B7FFF4660F1F4455B820204000483D202040004889E57417B84885C0740D5DBF20204000FFE00F1F445DC3660F1F44BE20204000554881EE202040004889E548C1FE034889F048C1E83F4801C648D1FE7415B84885C0740B5DBF20204000FFE00F1F005DC3660F1F44803D391B007517554889E5E87EFFC605271B015DC30F1F44F3C30F1F4000662E0F1F8400554889E55DEB89660F1F8400B902008B05F91A0F1F4421F883C1FF75F98905E71AC3669050BF0100E8D5FF31C059C390415741564189FF415541544C8D25A61855488D2DA618534989F64989D54C29E54883EC0848C1FD03E86FFE4885ED742031DB0F1F84004C89EA4C89F64489FF41FF14DC4883C3014839EB75EA4883C4085B5D415C415D415E415FC390662E0F1F8400F3C3 + - Name:.debug_str_offsets +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 350023002C004F00510055005D006100660068006A00 + - Name:.debug_str +Type:SHT_PROGBITS +Flags: [ SHF_MERGE, SHF_STRINGS ] +AddressAlign:0x0001 +Content: 636C616E672076657273696F6E20382E302E3020287472756E6B203334343033352900746573742E637070002F686F6D652F756D622F74657374735F323031382F3130365F726E676C6973747332004300696E74005F5A33666F6F6900666F6F006D61696E00500049005700 + - Name:.debug_loc +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 0500130011009F + - Name:.debug_abbrev +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 011101252513050325721710171B25110112067417023400032549133F193A0B3B0B021803240003253E0B0B0B042E011101120640187A196E2503253A0B3B0B3F19050500021803253A0B3B0B4913060B0111011206073400021703253A0B3B0B4913080B01551709340003253A0B3B0B49130A2E011101120640187A1903253A0B3B0B49133F190B48007F137D010C0F00491300 + - Name:.debug_info +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: AC00050001080100040001080002200540002F000C0002033C000103090324204304050404200540001E000157050601040501550801043C0006250540001800070901063C00080C00090A0107AA0A40054F00015707010E3C000B40004B05400C3C + - Name:.debug_rnglists +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 18000500080005200544051204171D00 + - Name:.debug_macinfo +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: '00' + - Name:.debug_line +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 7F00050008004C00010101FB0E0D000101010100010101011F0103011F020F051E02233D8C80E874CE6D5F1FC4A6544BE9D5B3233D8C80E874CE6D5F1FC4A6544BE9D5B300090220
[Lldb-commits] [lldb] r342153 - [LLDB] - Improved DWARF5 support.
Author: grimar Date: Thu Sep 13 10:06:47 2018 New Revision: 342153 URL: http://llvm.org/viewvc/llvm-project?rev=342153&view=rev Log: [LLDB] - Improved DWARF5 support. This patch improves the support of DWARF5. Particularly the reporting of source code locations. Differential revision: https://reviews.llvm.org/D51935 Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/show_location/ lldb/trunk/packages/Python/lldbsuite/test/functionalities/show_location/TestShowLocationDwarf5.py lldb/trunk/packages/Python/lldbsuite/test/functionalities/show_location/a.yaml Modified: lldb/trunk/include/lldb/lldb-enumerations.h lldb/trunk/source/Core/Section.cpp lldb/trunk/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.h lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFUnit.h lldb/trunk/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h lldb/trunk/source/Symbol/ObjectFile.cpp Modified: lldb/trunk/include/lldb/lldb-enumerations.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-enumerations.h?rev=342153&r1=342152&r2=342153&view=diff == --- lldb/trunk/include/lldb/lldb-enumerations.h (original) +++ lldb/trunk/include/lldb/lldb-enumerations.h Thu Sep 13 10:06:47 2018 @@ -57,7 +57,7 @@ enum StateType { eStateSuspended, ///< Process or thread is in a suspended state as far ///< as the debugger is concerned while other processes ///< or threads get the chance to run. - kLastStateType = eStateSuspended + kLastStateType = eStateSuspended }; //-- @@ -672,7 +672,8 @@ enum SectionType { eSectionTypeDWARFGNUDebugAltLink, eSectionTypeDWARFDebugTypes, // DWARF .debug_types section eSectionTypeDWARFDebugNames, // DWARF v5 .debug_names - eSectionTypeOther + eSectionTypeOther, + eSectionTypeDWARFDebugLineStr, // DWARF v5 .debug_line_str }; FLAGS_ENUM(EmulateInstructionOptions){ Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/show_location/TestShowLocationDwarf5.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/show_location/TestShowLocationDwarf5.py?rev=342153&view=auto == --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/show_location/TestShowLocationDwarf5.py (added) +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/show_location/TestShowLocationDwarf5.py Thu Sep 13 10:06:47 2018 @@ -0,0 +1,34 @@ +import lldb +from lldbsuite.test.lldbtest import * +from lldbsuite.test.decorators import * + +# This test checks that source code location is shown correctly +# when DWARF5 debug information is used. + +class TestTargetSourceMap(TestBase): + +mydir = TestBase.compute_mydir(__file__) + +def test_source_map(self): +# Set the target soure map to map "./" to the current test directory. +yaml_path = os.path.join(self.getSourceDir(), "a.yaml") +yaml_base, ext = os.path.splitext(yaml_path) +obj_path = self.getBuildArtifact(yaml_base) +self.yaml2obj(yaml_path, obj_path) + +def cleanup(): +if os.path.exists(obj_path): +os.unlink(obj_path) + +# Execute the cleanup function during test case tear down. +self.addTearDownHook(cleanup) + +# Create a target with the object file we just created from YAML +target = self.dbg.CreateTarget(obj_path) + +# Check we are able to show the locations properly. +self.expect("b main", VALID_BREAKPOINT_LOCATION, +substrs=['main + 13 at test.cpp:2:3, address = 0x0040052d']) + +self.expect("b foo", VALID_BREAKPOINT_LOCATION, +substrs=['foo() + 4 at test.cpp:6:1, address = 0x00400534']) Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/show_location/a.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/show_location/a.yaml?rev=342153&view=auto == --- lldb/trunk/packages/Python/ll
[Lldb-commits] [lldb] r344328 - [LLDB] - Add support for DW_FORM_implicit_const.
Author: grimar Date: Fri Oct 12 02:46:15 2018 New Revision: 344328 URL: http://llvm.org/viewvc/llvm-project?rev=344328&view=rev Log: [LLDB] - Add support for DW_FORM_implicit_const. LLDB does not support this DWARF5 form atm. At least gcc emits it in some cases when doing optimization for abbreviations. As far I can tell, clang does not support it yet, though the rest LLVM code already knows about it. The patch adds the support. Differential revision: https://reviews.llvm.org/D52689 Added: lldb/trunk/lit/Breakpoint/Inputs/implicit_const_form_support.yaml lldb/trunk/lit/Breakpoint/implicit_const_form_support.test Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.h lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFAttribute.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFAttribute.h lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h Added: lldb/trunk/lit/Breakpoint/Inputs/implicit_const_form_support.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/implicit_const_form_support.yaml?rev=344328&view=auto == --- lldb/trunk/lit/Breakpoint/Inputs/implicit_const_form_support.yaml (added) +++ lldb/trunk/lit/Breakpoint/Inputs/implicit_const_form_support.yaml Fri Oct 12 02:46:15 2018 @@ -0,0 +1,41 @@ +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data:ELFDATA2LSB + Type:ET_EXEC + Machine: EM_X86_64 + Entry: 0x004004A0 +Sections: + - Name:.text +Type:SHT_PROGBITS +Flags: [ SHF_ALLOC, SHF_EXECINSTR ] +Address: 0x004004A0 +AddressAlign:0x0010 +Content: 31ED4989D15E4889E24883E4F0505449C7C01006400048C7C1A005400048C7C77E054000E8B7FFF4660F1F44B820204000483D202040007413B84885C07409BF20204000FFE06690C30F1F44662E0F1F8400BE202040004881EE2020400048C1FE034889F048C1E83F4801C648D1FE7411B84885C07407BF20204000FFE0C30F1F44662E0F1F8400803DD91A007517554889E5E87EFFC605C71A015DC30F1F44C30F1F44662E0F1F8400EB8EB8C3B8C3554889E5534883EC08E8E6FF89C3E8E5FF01D84883C4085B5DC30F1F4000415741564189FF415541544C8D25161855488D2D1618534989F64989D54C29E54883EC0848C1FD03E877FE4885ED742031DB0F1F84004C89EA4C89F64489FF41FF14DC4883C3014839EB75EA4883C4085B5D415C415D415E415FC390662E0F1F8400F3C3 + - Name:.debug_frame +Type:SHT_PROGBITS +AddressAlign:0x0008 +Content: 140003000178100C0708900114007205460014007805460034007E0540001E000401000E1086020403000D0604050083030414000C070800 + - Name:.debug_info +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 95000108023A00213100720540002A00039A000109054C007E0540001E00019C040405696E7400012C00059F004C0078054600019C018C000191004C0072054600019C00 + - Name:.debug_abbrev +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 012E003F19030E3A21013B0B3921056E0E49131101120740187A19021101250E130B030E1B0E110112071017032E003F19030E3A0B3B0B390B49131101120740187C190424000B0B3E0B030800 + - Name:.debug_aranges +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 2C0002000800720540002A00 + - Name:.debug_line +Type:SHT_PROGBITS +AddressAlign:0x0001 +Content: 560002001F000101FB0E0D000101010100010100746573742E6370750C000902720541050913050159050C22050913050159050C22050D9105167405175805012F0207000101 + - Name:.debug_str +Type:SHT_PROGBITS +Flags: [ SHF_MERGE, SHF_STRINGS ] +AddressAlign:0x0001 +Content: 2F686F6D652F756D622F74657374735F323031382F3130315F696D706C696369745F636F6E73742F6E657700666F6F3200746573742E63707000474E5520432B2B313420382E302E3120323031383033313920286578706572696D656E74616C29202D6D74756E653D67656E65726963202D6D617263683D7838362D3634202D67202D6764776172662D3500666F6F31005F5A34666F6F3176006D61696
[Lldb-commits] [lldb] r345157 - Revert rL345127: [LLDB] - Add support for DW_RLE_base_address and DW_RLE_offset_pair entries
Author: grimar Date: Wed Oct 24 09:21:56 2018 New Revision: 345157 URL: http://llvm.org/viewvc/llvm-project?rev=345157&view=rev Log: Revert rL345127: [LLDB] - Add support for DW_RLE_base_address and DW_RLE_offset_pair entries It broke BB: http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/11671/consoleFull#434797663d489585b-5106-414a-ac11-3ff90657619c Removed: lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_offset_pair.yaml lldb/trunk/lit/Breakpoint/debug_rnglist_offset_pair.test Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h Removed: lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_offset_pair.yaml URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_offset_pair.yaml?rev=345156&view=auto == --- lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_offset_pair.yaml (original) +++ lldb/trunk/lit/Breakpoint/Inputs/debug_rnglist_offset_pair.yaml (removed) @@ -1,53 +0,0 @@ !ELF -FileHeader: - Class: ELFCLASS64 - Data:ELFDATA2LSB - Type:ET_EXEC - Machine: EM_X86_64 - Entry: 0x00400440 -Sections: - - Name:.text -Type:SHT_PROGBITS -Flags: [ SHF_ALLOC, SHF_EXECINSTR ] -Address: 0x00400440 -AddressAlign:0x0010 -Content: 31ED4989D15E4889E24883E4F0505449C7C0C005400048C7C15005400048C7C740054000E8B7FFF4660F1F4455B820204000483D202040004889E57417B84885C0740D5DBF20204000FFE00F1F445DC3660F1F44BE20204000554881EE202040004889E548C1FE034889F048C1E83F4801C648D1FE7415B84885C0740B5DBF20204000FFE00F1F005DC3660F1F44803D391B007517554889E5E87EFFC605271B015DC30F1F44F3C30F1F4000662E0F1F8400554889E55DEB89660F1F8400B902008B05F91A0F1F4421F883C1FF75F98905E71AC3669050BF0100E8D5FF31C059C390415741564189FF415541544C8D25A61855488D2DA618534989F64989D54C29E54883EC0848C1FD03E86FFE4885ED742031DB0F1F84004C89EA4C89F64489FF41FF14DC4883C3014839EB75EA4883C4085B5D415C415D415E415FC390662E0F1F8400F3C3 - - Name:.debug_str_offsets -Type:SHT_PROGBITS -AddressAlign:0x0001 -Content: 350023002C004F00510055005D006100660068006A00 - - Name:.debug_str -Type:SHT_PROGBITS -Flags: [ SHF_MERGE, SHF_STRINGS ] -AddressAlign:0x0001 -Content: 636C616E672076657273696F6E20382E302E3020287472756E6B203334343033352900746573742E637070002F686F6D652F756D622F74657374735F323031382F3130365F726E676C6973747332004300696E74005F5A33666F6F6900666F6F006D61696E00500049005700 - - Name:.debug_loc -Type:SHT_PROGBITS -AddressAlign:0x0001 -Content: 0500130011009F - - Name:.debug_abbrev -Type:SHT_PROGBITS -AddressAlign:0x0001 -Content: 011101252513050325721710171B25110112067417023400032549133F193A0B3B0B021803240003253E0B0B0B042E011101120640187A196E2503253A0B3B0B3F19050500021803253A0B3B0B4913060B0111011206073400021703253A0B3B0B4913080B01551709340003253A0B3B0B49130A2E011101120640187A1903253A0B3B0B49133F190B48007F137D010C0F00491300 - - Name:.debug_info -Type:SHT_PROGBITS -AddressAlign:0x0001 -Content: AC00050001080100040001080002200540002F000C0002033C000103090324204304050404200540001E000157050601040501550801043C0006250540001800070901063C00080C00090A0107AA0A40054F00015707010E3C000B40004B05400C3C - - Name:.debug_rnglists -Type:SHT_PROGBITS -AddressAlign:0x0001 -Content: 18000500080005200544051204171D00 - - Name:.debug_macinfo -Type:SHT_PROGBITS -AddressAlign:0x0001 -Content: '00' - - Name:.debug_line -Type:SHT_PROGBITS -AddressAlign:0x0001 -Content: 7F00050008004C00010101FB0E0D000101010100010101011F0103011F020F051E02233D8C80E874CE6D5F1FC4A6544BE9D5B3233D8C80E874CE6D5F1FC4A6544BE9D5B3000902200540001605080A5B0515C6050306
Re: [Lldb-commits] D53140: [LLDB] - Add support for DW_RLE_base_address and DW_RLE_offset_pair entries (.debug_rnglists)
I'll revert it. Sorry for the breakage. Best regards, George | Developer | Access Softek, Inc От: Adrian Prantl via Phabricator Отправлено: 24 октября 2018 г. 18:50 Кому: George Rimar; jdevliegh...@apple.com; ted.woodw...@codeaurora.org; sgraen...@apple.com; jmole...@apple.com; syaghm...@apple.com; jing...@apple.com; dccitali...@gmail.com; v...@apple.com; boris.ulasev...@gmail.com; lldb-commits@lists.llvm.org; py.cane...@gmail.com; chi...@raincode.com; b.gia...@gmail.com; clayb...@gmail.com Копия: apra...@apple.com; llvm-comm...@lists.llvm.org; Igor Kudrin; Evgeny Leviant Тема: [PATCH] D53140: [LLDB] - Add support for DW_RLE_base_address and DW_RLE_offset_pair entries (.debug_rnglists) CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. aprantl added a comment. It looks like this might have broken the bots, could you please take a look? http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/11671/consoleFull#434797663d489585b-5106-414a-ac11-3ff90657619c TEST 'lldb :: Breakpoint/debug_rnglist_rlestartend.test' FAILED Script: -- : 'RUN: at line 1'; /Users/buildslave/jenkins/workspace/lldb-cmake/lldb-build/bin/yaml2obj /Users/buildslave/jenkins/workspace/lldb-cmake/llvm/tools/lldb/lit/Breakpoint/Inputs/debug_rnglist_rlestartend.yaml > /Users/buildslave/jenkins/workspace/lldb-cmake/lldb-build/tools/lldb/lit/Breakpoint/Output/debug_rnglist_rlestartend.test.tmptest : 'RUN: at line 2'; /Users/buildslave/jenkins/workspace/lldb-cmake/lldb-build/bin/lldb-test breakpoints /Users/buildslave/jenkins/workspace/lldb-cmake/lldb-build/tools/lldb/lit/Breakpoint/Output/debug_rnglist_rlestartend.test.tmptest /Users/buildslave/jenkins/workspace/lldb-cmake/llvm/tools/lldb/lit/Breakpoint/debug_rnglist_rlestartend.test | /Users/buildslave/jenkins/workspace/lldb-cmake/lldb-build/bin/FileCheck /Users/buildslave/jenkins/workspace/lldb-cmake/llvm/tools/lldb/lit/Breakpoint/debug_rnglist_rlestartend.test -- Exit Code: 2 Command Output (stderr): -- unexpected encoding UNREACHABLE executed at /Users/buildslave/jenkins/workspace/lldb-cmake/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp:202! 0 lldb-test0x000105a27d65 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 37 1 lldb-test0x000105a26c96 llvm::sys::RunSignalHandlers() + 198 2 lldb-test0x000105a283c8 SignalHandler(int) + 264 3 libsystem_platform.dylib 0x7fff78d08f5a _sigtramp + 26 4 libsystem_platform.dylib 0x7ffeea2c9da8 _sigtramp + 1901858408 5 libsystem_c.dylib0x7fff78aa61ae abort + 127 6 lldb-test0x00010599797c llvm::llvm_unreachable_internal(char const*, char const*, unsigned int) + 540 7 lldb-test0x000105eaeba9 DWARFDebugRngLists::FindRanges(DWARFUnit const*, unsigned int, lldb_private::RangeArray&) const + 457 8 lldb-test0x000105ea9dcc DWARFDebugInfoEntry::GetAttributeAddressRanges(SymbolFileDWARF*, DWARFUnit const*, lldb_private::RangeArray&, bool, bool) const + 140 9 lldb-test0x000105eb4114 DWARFUnit::BuildAddressRangeTable(SymbolFileDWARF*, DWARFDebugAranges*) + 116 10 lldb-test0x000105ea6bd1 DWARFDebugInfo::GetCompileUnitAranges() + 1025 11 lldb-test0x000105ec4c0f SymbolFileDWARF::ResolveSymbolContext(lldb_private::Address const&, unsigned int, lldb_private::SymbolContext&) + 255 12 lldb-test0x000105ba76bf lldb_private::SymbolVendor::ResolveSymbolContext(lldb_private::Address const&, unsigned int, lldb_private::SymbolContext&) + 95 13 lldb-test0x000105a8305b lldb_private::Module::ResolveSymbolContextForAddress(lldb_private::Address const&, unsigned int, lldb_private::SymbolContext&, bool) + 459 14 lldb-test0x000105a49b3d lldb_private::Address::CalculateSymbolContext(lldb_private::SymbolContext*, unsigned int) const + 205 15 lldb-test0x000105a33e67 lldb_private::BreakpointLocation::GetDescription(lldb_private::Stream*, lldb::DescriptionLevel) + 279 16 lldb-test0x000105a2e591 lldb_private::Breakpoint::GetDescription(lldb_private::Stream*, lldb::DescriptionLevel, bool) + 849 17 lldb-test0x00010713ba1a CommandObjectBreakpointSet::DoExecute(lldb_private::Args&, lldb_private::CommandReturnObject&) + 3082 18 lldb-test0x000105b2daa2 lldb_private::CommandObjectParsed::Execute(char const*, lldb_private::CommandReturnObject&) + 418 19 lldb-test0x000105b26485 lldb_private::CommandInterpreter::HandleCommand(char const*, lldb_private::LazyBool, lldb_private::CommandReturnObject&, lldb_private
[Lldb-commits] [lldb] r371866 - [lldb] - Update unit tests after lib/ObjectYAML change.
Author: grimar Date: Fri Sep 13 09:00:28 2019 New Revision: 371866 URL: http://llvm.org/viewvc/llvm-project?rev=371866&view=rev Log: [lldb] - Update unit tests after lib/ObjectYAML change. An update after r371865 Modified: lldb/trunk/unittests/Process/minidump/MinidumpParserTest.cpp lldb/trunk/unittests/TestingSupport/TestUtilities.cpp Modified: lldb/trunk/unittests/Process/minidump/MinidumpParserTest.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Process/minidump/MinidumpParserTest.cpp?rev=371866&r1=371865&r2=371866&view=diff == --- lldb/trunk/unittests/Process/minidump/MinidumpParserTest.cpp (original) +++ lldb/trunk/unittests/Process/minidump/MinidumpParserTest.cpp Fri Sep 13 09:00:28 2019 @@ -56,8 +56,9 @@ public: std::string data; llvm::raw_string_ostream os(data); llvm::yaml::Input YIn(yaml); -if (llvm::Error E = llvm::yaml::convertYAML(YIn, os)) - return E; +if (!llvm::yaml::convertYAML(YIn, os, [](const llvm::Twine &Msg) {})) + return llvm::createStringError(llvm::inconvertibleErrorCode(), + "convertYAML() failed"); os.flush(); auto data_buffer_sp = @@ -83,7 +84,8 @@ Streams: - Type:LinuxAuxv Content: DEADBEEFBAADF00D )"); - ASSERT_THAT_ERROR(llvm::yaml::convertYAML(YIn, os), llvm::Succeeded()); + + ASSERT_TRUE(llvm::yaml::convertYAML(YIn, os, [](const llvm::Twine &Msg){})); os.flush(); auto data_buffer_sp = std::make_shared( duplicate_streams.data(), duplicate_streams.size()); Modified: lldb/trunk/unittests/TestingSupport/TestUtilities.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/TestingSupport/TestUtilities.cpp?rev=371866&r1=371865&r2=371866&view=diff == --- lldb/trunk/unittests/TestingSupport/TestUtilities.cpp (original) +++ lldb/trunk/unittests/TestingSupport/TestUtilities.cpp Fri Sep 13 09:00:28 2019 @@ -39,8 +39,9 @@ llvm::Expected TestFile::fromY { llvm::raw_fd_ostream OS(FD, /*shouldClose*/ true); llvm::yaml::Input YIn(Yaml); -if (llvm::Error E = llvm::yaml::convertYAML(YIn, OS)) - return std::move(E); +if (!llvm::yaml::convertYAML(YIn, OS, [](const llvm::Twine &Msg) {})) + return llvm::createStringError(llvm::inconvertibleErrorCode(), + "convertYAML() failed"); } return TestFile(Name, std::move(Remover)); } ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits