• Home
  • Raw
  • Download

Lines Matching refs:fde

44     const DwarfFde* fde = GetFdeFromPc(pc);  in Step()  local
45 if (fde == nullptr || fde->cie == nullptr) { in Step()
52 if (!GetCfaLocationInfo(pc, fde, &loc_regs)) { in Step()
55 loc_regs.cie = fde->cie; in Step()
253 DwarfFde* fde = &fde_entries_[offset]; in GetFdeFromOffset() local
255 if (!FillInFdeHeader(fde) || !FillInFde(fde)) { in GetFdeFromOffset()
259 return fde; in GetFdeFromOffset()
263 bool DwarfSectionImpl<AddressType>::FillInFdeHeader(DwarfFde* fde) { in FillInFdeHeader() argument
279 fde->cfa_instructions_end = memory_.cur_offset() + length64; in FillInFdeHeader()
295 fde->cie_offset = GetCieOffsetFromFde64(value64); in FillInFdeHeader()
298 fde->cfa_instructions_end = memory_.cur_offset() + length32; in FillInFdeHeader()
314 fde->cie_offset = GetCieOffsetFromFde32(value32); in FillInFdeHeader()
320 bool DwarfSectionImpl<AddressType>::FillInFde(DwarfFde* fde) { in FillInFde() argument
323 const DwarfCie* cie = GetCieFromOffset(fde->cie_offset); in FillInFde()
327 fde->cie = cie; in FillInFde()
337 bool valid = memory_.ReadEncodedValue<AddressType>(cie->fde_address_encoding, &fde->pc_start); in FillInFde()
338 fde->pc_start = AdjustPcFromFde(fde->pc_start); in FillInFde()
341 if (!valid || !memory_.ReadEncodedValue<AddressType>(cie->fde_address_encoding, &fde->pc_end)) { in FillInFde()
346 fde->pc_end += fde->pc_start; in FillInFde()
359 if (!memory_.ReadEncodedValue<AddressType>(cie->lsda_encoding, &fde->lsda_address)) { in FillInFde()
368 fde->cfa_instructions_offset = memory_.cur_offset(); in FillInFde()
554 bool DwarfSectionImpl<AddressType>::GetCfaLocationInfo(uint64_t pc, const DwarfFde* fde, in GetCfaLocationInfo() argument
556 DwarfCfa<AddressType> cfa(&memory_, fde); in GetCfaLocationInfo()
559 auto reg_entry = cie_loc_regs_.find(fde->cie_offset); in GetCfaLocationInfo()
561 if (!cfa.GetLocationInfo(pc, fde->cie->cfa_instructions_offset, fde->cie->cfa_instructions_end, in GetCfaLocationInfo()
566 cie_loc_regs_[fde->cie_offset] = *loc_regs; in GetCfaLocationInfo()
568 cfa.set_cie_loc_regs(&cie_loc_regs_[fde->cie_offset]); in GetCfaLocationInfo()
569 if (!cfa.GetLocationInfo(pc, fde->cfa_instructions_offset, fde->cfa_instructions_end, loc_regs)) { in GetCfaLocationInfo()
577 bool DwarfSectionImpl<AddressType>::Log(uint8_t indent, uint64_t pc, const DwarfFde* fde) { in Log() argument
578 DwarfCfa<AddressType> cfa(&memory_, fde); in Log()
581 const DwarfCie* cie = fde->cie; in Log()
586 if (!cfa.Log(indent, pc, fde->cfa_instructions_offset, fde->cfa_instructions_end)) { in Log()
619 void DwarfSectionImplNoHdr<AddressType>::InsertFde(const DwarfFde* fde) { in InsertFde() argument
620 uint64_t start = fde->pc_start; in InsertFde()
621 uint64_t end = fde->pc_end; in InsertFde()
631 fdes_[end] = std::make_pair(start, fde); in InsertFde()
635 fdes_[it->second.first] = std::make_pair(start, fde); in InsertFde()
641 fdes_[end] = std::make_pair(start, fde); in InsertFde()
651 fdes_[end] = std::make_pair(start, fde); in InsertFde()
723 DwarfFde* fde = &fde_entries_[start_offset]; in GetNextCieOrFde() local
724 fde->cfa_instructions_end = next_entries_offset_; in GetNextCieOrFde()
725 fde->cie_offset = cie_offset; in GetNextCieOrFde()
727 if (!this->FillInFde(fde)) { in GetNextCieOrFde()
731 *fde_entry = fde; in GetNextCieOrFde()
756 DwarfFde* fde; in GetFdes() local
757 if (!GetNextCieOrFde(&fde)) { in GetFdes()
760 if (fde != nullptr) { in GetFdes()
761 InsertFde(fde); in GetFdes()
762 fdes->push_back(fde); in GetFdes()
786 DwarfFde* fde; in GetFdeFromPc() local
787 if (!GetNextCieOrFde(&fde)) { in GetFdeFromPc()
790 if (fde != nullptr) { in GetFdeFromPc()
791 InsertFde(fde); in GetFdeFromPc()
792 if (pc >= fde->pc_start && pc < fde->pc_end) { in GetFdeFromPc()
793 return fde; in GetFdeFromPc()