summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp')
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp113
1 files changed, 47 insertions, 66 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp
index 5fe0cc4d416..5ed9c6ab728 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp
@@ -9,83 +9,64 @@
#include "DIERef.h"
#include "DWARFCompileUnit.h"
-#include "DWARFFormValue.h"
#include "DWARFDebugInfo.h"
+#include "DWARFFormValue.h"
#include "SymbolFileDWARF.h"
#include "SymbolFileDWARFDebugMap.h"
-DIERef::DIERef() :
- cu_offset(DW_INVALID_OFFSET),
- die_offset(DW_INVALID_OFFSET)
-{}
+DIERef::DIERef()
+ : cu_offset(DW_INVALID_OFFSET), die_offset(DW_INVALID_OFFSET) {}
-DIERef::DIERef(dw_offset_t c, dw_offset_t d) :
- cu_offset(c),
- die_offset(d)
-{}
+DIERef::DIERef(dw_offset_t c, dw_offset_t d) : cu_offset(c), die_offset(d) {}
-DIERef::DIERef(lldb::user_id_t uid, SymbolFileDWARF *dwarf) :
- cu_offset(DW_INVALID_OFFSET),
- die_offset(uid&0xffffffff)
-{
- SymbolFileDWARFDebugMap *debug_map = dwarf->GetDebugMapSymfile();
- if (debug_map)
- {
- const uint32_t oso_idx = debug_map->GetOSOIndexFromUserID(uid);
- SymbolFileDWARF *actual_dwarf = debug_map->GetSymbolFileByOSOIndex(oso_idx);
- if (actual_dwarf)
- {
- DWARFDebugInfo *debug_info = actual_dwarf->DebugInfo();
- if (debug_info)
- {
- DWARFCompileUnit *dwarf_cu = debug_info->GetCompileUnitContainingDIEOffset(die_offset);
- if (dwarf_cu)
- {
- cu_offset = dwarf_cu->GetOffset();
- return;
- }
- }
+DIERef::DIERef(lldb::user_id_t uid, SymbolFileDWARF *dwarf)
+ : cu_offset(DW_INVALID_OFFSET), die_offset(uid & 0xffffffff) {
+ SymbolFileDWARFDebugMap *debug_map = dwarf->GetDebugMapSymfile();
+ if (debug_map) {
+ const uint32_t oso_idx = debug_map->GetOSOIndexFromUserID(uid);
+ SymbolFileDWARF *actual_dwarf = debug_map->GetSymbolFileByOSOIndex(oso_idx);
+ if (actual_dwarf) {
+ DWARFDebugInfo *debug_info = actual_dwarf->DebugInfo();
+ if (debug_info) {
+ DWARFCompileUnit *dwarf_cu =
+ debug_info->GetCompileUnitContainingDIEOffset(die_offset);
+ if (dwarf_cu) {
+ cu_offset = dwarf_cu->GetOffset();
+ return;
}
- die_offset = DW_INVALID_OFFSET;
- }
- else
- {
- cu_offset = uid>>32;
+ }
}
+ die_offset = DW_INVALID_OFFSET;
+ } else {
+ cu_offset = uid >> 32;
+ }
}
-DIERef::DIERef(const DWARFFormValue& form_value) :
- cu_offset(DW_INVALID_OFFSET),
- die_offset(DW_INVALID_OFFSET)
-{
- if (form_value.IsValid())
- {
- const DWARFCompileUnit* dwarf_cu = form_value.GetCompileUnit();
- if (dwarf_cu)
- {
- if (dwarf_cu->GetBaseObjOffset() != DW_INVALID_OFFSET)
- cu_offset = dwarf_cu->GetBaseObjOffset();
- else
- cu_offset = dwarf_cu->GetOffset();
- }
- die_offset = form_value.Reference();
+DIERef::DIERef(const DWARFFormValue &form_value)
+ : cu_offset(DW_INVALID_OFFSET), die_offset(DW_INVALID_OFFSET) {
+ if (form_value.IsValid()) {
+ const DWARFCompileUnit *dwarf_cu = form_value.GetCompileUnit();
+ if (dwarf_cu) {
+ if (dwarf_cu->GetBaseObjOffset() != DW_INVALID_OFFSET)
+ cu_offset = dwarf_cu->GetBaseObjOffset();
+ else
+ cu_offset = dwarf_cu->GetOffset();
}
+ die_offset = form_value.Reference();
+ }
}
-lldb::user_id_t
-DIERef::GetUID(SymbolFileDWARF *dwarf) const
-{
- //----------------------------------------------------------------------
- // Each SymbolFileDWARF will set its ID to what is expected.
- //
- // SymbolFileDWARF, when used for DWARF with .o files on MacOSX, has the
- // ID set to the compile unit index.
- //
- // SymbolFileDWARFDwo sets the ID to the compile unit offset.
- //----------------------------------------------------------------------
- if (dwarf)
- return dwarf->GetID() | die_offset;
- else
- return LLDB_INVALID_UID;
+lldb::user_id_t DIERef::GetUID(SymbolFileDWARF *dwarf) const {
+ //----------------------------------------------------------------------
+ // Each SymbolFileDWARF will set its ID to what is expected.
+ //
+ // SymbolFileDWARF, when used for DWARF with .o files on MacOSX, has the
+ // ID set to the compile unit index.
+ //
+ // SymbolFileDWARFDwo sets the ID to the compile unit offset.
+ //----------------------------------------------------------------------
+ if (dwarf)
+ return dwarf->GetID() | die_offset;
+ else
+ return LLDB_INVALID_UID;
}
-
OpenPOWER on IntegriCloud