[Lldb-commits] [lldb] r345249 - [LLDB] - Parse the DW_LLE_startx_length correctly for DWARF v5 case.

2018-10-25 Thread George Rimar via lldb-commits
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)"

2018-10-25 Thread George Rimar via lldb-commits
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.

2018-10-29 Thread George Rimar via lldb-commits
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.

2018-10-31 Thread George Rimar via lldb-commits
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.

2018-10-31 Thread George Rimar via lldb-commits
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.

2018-10-31 Thread George Rimar via lldb-commits
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.

2018-11-02 Thread George Rimar via lldb-commits
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.

2018-11-14 Thread George Rimar via lldb-commits
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."

2018-11-14 Thread George Rimar via lldb-commits
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.".

2018-11-14 Thread George Rimar via lldb-commits
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.

2018-11-29 Thread George Rimar via lldb-commits
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

2018-11-29 Thread George Rimar via lldb-commits
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.

2019-01-16 Thread George Rimar via lldb-commits
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.

2019-04-03 Thread George Rimar via lldb-commits
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)

2019-10-04 Thread George Rimar via lldb-commits
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.

2019-10-04 Thread George Rimar via lldb-commits
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)

2019-10-04 Thread George Rimar via lldb-commits
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.

2019-10-04 Thread George Rimar via lldb-commits
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)

2019-10-04 Thread George Rimar via lldb-commits
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.

2019-10-04 Thread George Rimar via lldb-commits
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.

2019-10-04 Thread George Rimar via lldb-commits
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

2019-10-04 Thread George Rimar via lldb-commits
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)

2019-10-04 Thread George Rimar via lldb-commits
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.

2019-09-13 Thread George Rimar via lldb-commits
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