Lines Matching refs:unit

63 	ExpressionEvaluationContext(DwarfFile* file, CompilationUnit* unit,
73 fUnit(unit),
552 WARNING("\"%s\": Invalid compilation unit length.\n", fileName);
563 WARNING("\"%s\": Unexpected end of data in compilation unit "
568 TRACE_DIE("DWARF%d compilation unit: version %d, length: %" B_PRIu64
573 WARNING("\"%s\": Unsupported compilation unit version: %d\n",
587 // create a compilation unit object
588 CompilationUnit* unit = new(std::nothrow) CompilationUnit(
592 if (unit == NULL || !fCompilationUnits.AddItem(unit)) {
593 delete unit;
597 // parse the debug info for the unit
598 fCurrentCompilationUnit = unit;
599 error = _ParseCompilationUnit(unit);
618 for (int32 i = 0; CompilationUnit* unit = fCompilationUnits.ItemAt(i);
620 fCurrentCompilationUnit = unit;
621 status_t error = _FinishCompilationUnit(unit);
654 // that should be the compilation unit entry
660 // find the compilation unit
661 for (int32 i = 0; CompilationUnit* unit = fCompilationUnits.ItemAt(i);
663 if (unit->UnitEntry() == unitEntry)
664 return unit;
672 DwarfFile::ResolveRangeList(CompilationUnit* unit, uint64 offset) const
674 if (unit == NULL || fDebugRangesSection == NULL)
687 target_addr_t baseAddress = unit->AddressRangeBase();
688 target_addr_t maxAddress = unit->MaxAddress();
691 fDebugRangesSection->Size() - offset, unit->AddressSize());
718 DwarfFile::UnwindCallFrame(CompilationUnit* unit, uint8 addressSize,
727 result = _UnwindCallFrame(false, unit, addressSize, subprogramEntry,
734 result = _UnwindCallFrame(true, unit, addressSize, subprogramEntry,
743 DwarfFile::EvaluateExpression(CompilationUnit* unit, uint8 addressSize,
749 ExpressionEvaluationContext context(this, unit, addressSize,
762 DwarfFile::ResolveLocation(CompilationUnit* unit, uint8 addressSize,
772 status_t error = _GetLocationExpression(unit, location, instructionPointer,
778 ExpressionEvaluationContext context(this, unit, addressSize,
788 DwarfFile::EvaluateConstantValue(CompilationUnit* unit, uint8 addressSize,
807 status_t error = EvaluateExpression(unit, addressSize,
824 DwarfFile::EvaluateDynamicValue(CompilationUnit* unit, uint8 addressSize,
907 status_t error = EvaluateConstantValue(unit, addressSize,
920 status_t error = EvaluateExpression(unit, addressSize,
939 DwarfFile::_ParseCompilationUnit(CompilationUnit* unit)
942 status_t error = _GetAbbreviationTable(unit->AbbreviationOffset(),
947 unit->SetAbbreviationTable(abbreviationTable);
950 (const uint8*)fDebugInfoSection->Data() + unit->ContentOffset(),
951 unit->ContentSize(), unit->AddressSize());
962 WARNING("No compilation unit entry in .debug_info section.\n");
966 unit->SetUnitEntry(unitEntry);
969 TRACE_DIE("remaining bytes in unit: %" B_PRIdOFF "\n",
1075 DwarfFile::_FinishCompilationUnit(CompilationUnit* unit)
1077 TRACE_DIE("\nfinishing compilation unit %p\n", unit);
1079 AbbreviationTable* abbreviationTable = unit->GetAbbreviationTable();
1082 (const uint8*)fDebugInfoSection->Data() + unit->HeaderOffset(),
1083 unit->TotalSize(), unit->AddressSize());
1087 int entryCount = unit->CountEntries();
1092 unit->GetEntryAt(i, entry, offset);
1127 // set the compilation unit's source language
1128 unit->SetSourceLanguage(entryInitInfo.languageInfo);
1130 // resolve the compilation unit's address range list
1131 if (TargetAddressRangeList* ranges = ResolveRangeList(unit,
1132 unit->UnitEntry()->AddressRangesOffset())) {
1133 unit->SetAddressRanges(ranges);
1138 const char* compilationDir = unit->UnitEntry()->CompilationDir();
1139 if (!unit->AddDirectory(compilationDir != NULL ? compilationDir : "."))
1144 _ParseLineInfo(unit);
1369 DwarfFile::_ParseLineInfo(CompilationUnit* unit)
1371 off_t offset = unit->UnitEntry()->StatementListOffset();
1373 TRACE_LINES("DwarfFile::_ParseLineInfo(%p), offset: %" B_PRIdOFF "\n", unit,
1377 fDebugLineSection->Size() - offset, unit->AddressSize());
1379 // unit length
1438 if (!unit->AddDirectory(directory))
1460 if (!unit->AddFile(file, dirIndex))
1472 return unit->GetLineNumberProgram().Init(program, programSize,
1479 DwarfFile::_UnwindCallFrame(bool usingEHFrameSection, CompilationUnit* unit,
1501 currentFrameSection->Size(), unit != NULL
1502 ? unit->AddressSize() : addressSize);
1551 usingEHFrameSection, unit, addressSize, context, cieID,
1609 error = _ParseFrameInfoInstructions(unit, context,
1633 error = _ParseFrameInfoInstructions(unit, context,
1658 error = EvaluateExpression(unit, addressSize,
1733 error = EvaluateExpression(unit, addressSize,
1752 error = EvaluateExpression(unit, addressSize,
1783 bool usingEHFrameSection, CompilationUnit* unit, uint8 addressSize,
1791 debugFrameSection->Size() - cieOffset, unit != NULL
1792 ? unit->AddressSize() : addressSize);
1860 DwarfFile::_ParseFrameInfoInstructions(CompilationUnit* unit,
2277 WARNING("Invalid public types set unit length.\n");
2311 TRACE_PUBTYPES("DwarfFile::_ParsePublicTypesInfo(): compilation unit debug "
2363 DwarfFile::_ResolveReference(CompilationUnit* unit, uint64 offset,
2367 return unit->EntryForOffset(offset);
2375 DwarfFile::_GetLocationExpression(CompilationUnit* unit,
2389 return _FindLocationExpression(unit, location->listOffset,
2398 DwarfFile::_FindLocationExpression(CompilationUnit* unit, uint64 offset,
2401 if (unit == NULL)
2410 target_addr_t baseAddress = unit->AddressRangeBase();
2411 target_addr_t maxAddress = unit->MaxAddress();
2414 fDebugLocationSection->Size() - offset, unit->AddressSize());