DWARF with .o files now uses 40-60% less memory!
Big fixes include:
- Change line table internal representation to contain "file addresses". Since each line table is owned by a compile unit that is owned by a module, it makes address translation into lldb_private::Address easy to do when needed.
- Removed linked address members/methods from lldb_private::Section and lldb_private::Address
- lldb_private::LineTable can now relink itself using a FileRangeMap to make it easier to re-link line tables in the future
- Added ObjectFile::ClearSymtab() so that we can get rid of the object file symbol tables after we parse them once since they are not needed and kept memory allocated for no reason
- Moved the m_sections_ap (std::auto_ptr to section list) and m_symtab_ap (std::auto_ptr to the lldb_private::Symtab) out of each of the ObjectFile subclasses and put it into lldb_private::ObjectFile.
- Changed how the debug map is parsed and stored to be able to:
- Lazily parse the debug map for each object file
- not require the address map for a .o file until debug information is linked for a .o file
llvm-svn: 176454
30 lines
769 B
C++
30 lines
769 B
C++
//===-- DWARFDebugMacinfo.h -------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef SymbolFileDWARF_DWARFDebugMacinfo_h_
|
|
#define SymbolFileDWARF_DWARFDebugMacinfo_h_
|
|
|
|
#include "SymbolFileDWARF.h"
|
|
|
|
class DWARFDebugMacinfo
|
|
{
|
|
public:
|
|
DWARFDebugMacinfo();
|
|
|
|
~DWARFDebugMacinfo();
|
|
|
|
static void
|
|
Dump (lldb_private::Stream *s,
|
|
const lldb_private::DataExtractor& macinfo_data,
|
|
lldb::offset_t offset = LLDB_INVALID_OFFSET);
|
|
};
|
|
|
|
|
|
#endif // SymbolFileDWARF_DWARFDebugMacinfo_h_
|