diff options
Diffstat (limited to 'source/Plugins/SymbolFile/DWARF/DWARFLocationList.cpp')
-rw-r--r-- | source/Plugins/SymbolFile/DWARF/DWARFLocationList.cpp | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/source/Plugins/SymbolFile/DWARF/DWARFLocationList.cpp b/source/Plugins/SymbolFile/DWARF/DWARFLocationList.cpp deleted file mode 100644 index 26768f060ef1..000000000000 --- a/source/Plugins/SymbolFile/DWARF/DWARFLocationList.cpp +++ /dev/null @@ -1,94 +0,0 @@ -//===-- DWARFLocationList.cpp -----------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "DWARFLocationList.h" - -#include "lldb/Core/Stream.h" - -#include "DWARFCompileUnit.h" -#include "DWARFDebugInfo.h" -#include "DWARFLocationDescription.h" - -using namespace lldb_private; - -dw_offset_t -DWARFLocationList::Dump(Stream &s, const DWARFCompileUnit* cu, const DWARFDataExtractor& debug_loc_data, lldb::offset_t offset) -{ - uint64_t start_addr, end_addr; - uint32_t addr_size = DWARFCompileUnit::GetAddressByteSize(cu); - s.SetAddressByteSize(DWARFCompileUnit::GetAddressByteSize(cu)); - dw_addr_t base_addr = cu ? cu->GetBaseAddress() : 0; - while (debug_loc_data.ValidOffset(offset)) - { - start_addr = debug_loc_data.GetMaxU64(&offset,addr_size); - end_addr = debug_loc_data.GetMaxU64(&offset,addr_size); - - if (start_addr == 0 && end_addr == 0) - break; - - s.PutCString("\n "); - s.Indent(); - if (cu) - s.AddressRange (start_addr + base_addr, - end_addr + base_addr, - cu->GetAddressByteSize(), - NULL, - ": "); - uint32_t loc_length = debug_loc_data.GetU16(&offset); - - DWARFDataExtractor locationData(debug_loc_data, offset, loc_length); - // if ( dump_flags & DWARFDebugInfo::eDumpFlag_Verbose ) *ostrm_ptr << " ( "; - print_dwarf_expression (s, locationData, addr_size, 4, false); - offset += loc_length; - } - - return offset; -} - -bool -DWARFLocationList::Extract(const DWARFDataExtractor& debug_loc_data, lldb::offset_t* offset_ptr, DWARFDataExtractor& location_list_data) -{ - // Initialize with no data just in case we don't find anything - location_list_data.Clear(); - - size_t loc_list_length = Size(debug_loc_data, *offset_ptr); - if (loc_list_length > 0) - { - location_list_data.SetData(debug_loc_data, *offset_ptr, loc_list_length); - *offset_ptr += loc_list_length; - return true; - } - - return false; -} - -size_t -DWARFLocationList::Size(const DWARFDataExtractor& debug_loc_data, lldb::offset_t offset) -{ - const dw_offset_t debug_loc_offset = offset; - - while (debug_loc_data.ValidOffset(offset)) - { - dw_addr_t start_addr = debug_loc_data.GetAddress(&offset); - dw_addr_t end_addr = debug_loc_data.GetAddress(&offset); - - if (start_addr == 0 && end_addr == 0) - break; - - uint16_t loc_length = debug_loc_data.GetU16(&offset); - offset += loc_length; - } - - if (offset > debug_loc_offset) - return offset - debug_loc_offset; - return 0; -} - - - |