Home | History | Annotate | Download | only in libunwindstack

Lines Matching defs:fde

44   const DwarfFde* fde = GetFdeFromOffset(fde_offset);
45 if (fde == nullptr) {
49 // Guaranteed pc >= pc_start, need to check pc in the fde range.
50 if (pc < fde->pc_end) {
51 return fde;
62 const DwarfFde* fde = GetFdeFromPc(pc);
63 if (fde == nullptr || fde->cie == nullptr) {
70 if (!GetCfaLocationInfo(pc, fde, &loc_regs)) {
73 loc_regs.cie = fde->cie;
447 DwarfFde* fde = &fde_entries_[offset];
449 if (!FillInFde(fde)) {
453 return fde;
457 bool DwarfSectionImpl<AddressType>::FillInFde(DwarfFde* fde) {
466 // 64 bit Fde.
473 fde->cfa_instructions_end = memory_.cur_offset() + length64;
488 // of the Fde information.
489 fde->cie_offset = GetCieOffsetFromFde64(value64);
491 // 32 bit Fde.
492 fde->cfa_instructions_end = memory_.cur_offset() + length32;
507 // of the Fde information.
508 fde->cie_offset = GetCieOffsetFromFde32(value32);
512 const DwarfCie* cie = GetCie(fde->cie_offset);
516 fde->cie = cie;
524 fde->pc_start)) {
529 fde->pc_start = AdjustPcFromFde(fde->pc_start);
531 if (!memory_.ReadEncodedValue<AddressType>(cie->fde_address_encoding & 0xf, &fde->pc_end)) {
536 fde->pc_end += fde->pc_start;
547 if (!memory_.ReadEncodedValue<AddressType>(cie->lsda_encoding, &fde->lsda_address)) {
556 fde->cfa_instructions_offset = memory_.cur_offset();
562 bool DwarfSectionImpl<AddressType>::GetCfaLocationInfo(uint64_t pc, const DwarfFde* fde,
564 DwarfCfa<AddressType> cfa(&memory_, fde);
567 auto reg_entry = cie_loc_regs_.find(fde->cie_offset);
569 if (!cfa.GetLocationInfo(pc, fde->cie->cfa_instructions_offset, fde->cie->cfa_instructions_end,
574 cie_loc_regs_[fde->cie_offset] = *loc_regs;
576 cfa.set_cie_loc_regs(&cie_loc_regs_[fde->cie_offset]);
577 if (!cfa.GetLocationInfo(pc, fde->cfa_instructions_offset, fde->cfa_instructions_end, loc_regs)) {
586 const DwarfFde* fde) {
587 DwarfCfa<AddressType> cfa(&memory_, fde);
590 const DwarfCie* cie = fde->cie;
595 if (!cfa.Log(indent, pc, load_bias, fde->cfa_instructions_offset, fde->cfa_instructions_end)) {
792 // Read the Cie Id of a Cie or the pointer of the Fde.
809 // This means that this Fde is not following the Cie.
814 // Fde 64 bit
822 // Read the Cie Id of a Cie or the pointer of the Fde.
839 // This means that this Fde is not following the Cie.
844 // Fde 32 bit