Lines Matching refs:hdr
670 bool DfxElf::FillUnwindTableByEhhdrLocal(struct DwarfEhFrameHdr* hdr, struct UnwindTableInfo* uti) in FillUnwindTableByEhhdrLocal() argument
672 if (hdr == nullptr) { in FillUnwindTableByEhhdrLocal()
675 if (hdr->version != DW_EH_VERSION) { in FillUnwindTableByEhhdrLocal()
676 LOGE("version(%d) error", hdr->version); in FillUnwindTableByEhhdrLocal()
680 uintptr_t ptr = (uintptr_t)(&(hdr->ehFrame)); in FillUnwindTableByEhhdrLocal()
681 LOGU("hdr: %" PRIx64 ", ehFrame: %" PRIx64 "", (uint64_t)hdr, (uint64_t)ptr); in FillUnwindTableByEhhdrLocal()
686 (uint64_t)uti->gp, hdr->ehFramePtrEnc, hdr->fdeCountEnc); in FillUnwindTableByEhhdrLocal()
688 MAYBE_UNUSED uintptr_t ehFrameStart = memory->ReadEncodedValue(ptr, hdr->ehFramePtrEnc); in FillUnwindTableByEhhdrLocal()
689 uintptr_t fdeCount = memory->ReadEncodedValue(ptr, hdr->fdeCountEnc); in FillUnwindTableByEhhdrLocal()
692 if (hdr->tableEnc != (DW_EH_PE_datarel | DW_EH_PE_sdata4)) { in FillUnwindTableByEhhdrLocal()
693 LOGU("tableEnc: %x", hdr->tableEnc); in FillUnwindTableByEhhdrLocal()
694 if (hdr->fdeCountEnc == DW_EH_PE_omit) { in FillUnwindTableByEhhdrLocal()
697 if (hdr->ehFramePtrEnc == DW_EH_PE_omit) { in FillUnwindTableByEhhdrLocal()
698 LOGE("ehFramePtrEnc(%x) error", hdr->ehFramePtrEnc); in FillUnwindTableByEhhdrLocal()
708 uti->segbase = (uintptr_t)hdr; in FillUnwindTableByEhhdrLocal()
716 bool DfxElf::FillUnwindTableByEhhdr(struct DwarfEhFrameHdr* hdr, uintptr_t shdrBase, struct UnwindT… in FillUnwindTableByEhhdr() argument
718 if ((hdr == nullptr) || (uti == nullptr)) { in FillUnwindTableByEhhdr()
721 if (hdr->version != DW_EH_VERSION) { in FillUnwindTableByEhhdr()
722 LOGE("version(%d) error", hdr->version); in FillUnwindTableByEhhdr()
725 uintptr_t ptr = (uintptr_t)(&(hdr->ehFrame)); in FillUnwindTableByEhhdr()
726 LOGU("hdr: %" PRIx64 ", ehFrame: %" PRIx64 "", (uint64_t)hdr, (uint64_t)ptr); in FillUnwindTableByEhhdr()
730 (uint64_t)uti->gp, hdr->ehFramePtrEnc, hdr->fdeCountEnc); in FillUnwindTableByEhhdr()
733 MAYBE_UNUSED uintptr_t ehFrameStart = mmap_->ReadEncodedValue(ptrOffset, hdr->ehFramePtrEnc); in FillUnwindTableByEhhdr()
734 uintptr_t fdeCount = mmap_->ReadEncodedValue(ptrOffset, hdr->fdeCountEnc); in FillUnwindTableByEhhdr()
738 if (hdr->tableEnc != (DW_EH_PE_datarel | DW_EH_PE_sdata4)) { in FillUnwindTableByEhhdr()
739 LOGU("tableEnc: %x", hdr->tableEnc); in FillUnwindTableByEhhdr()
740 if (hdr->fdeCountEnc == DW_EH_PE_omit) { in FillUnwindTableByEhhdr()
743 if (hdr->ehFramePtrEnc == DW_EH_PE_omit) { in FillUnwindTableByEhhdr()
744 LOGE("ehFramePtrEnc(%x) error", hdr->ehFramePtrEnc); in FillUnwindTableByEhhdr()
754 uti->tableData = shdrBase + ptr - (uintptr_t)hdr; in FillUnwindTableByEhhdr()
790 struct DwarfEhFrameHdr* hdr = nullptr; in FindUnwindTableInfo() local
794 hdr = (struct DwarfEhFrameHdr *) (shdr.offset + (char *)GetMmapPtr()); in FindUnwindTableInfo()
804 hdr = &synthHdr; in FindUnwindTableInfo()
807 hasTableInfo_ = FillUnwindTableByEhhdr(hdr, shdrBase, &uti); in FindUnwindTableInfo()
932 struct DwarfEhFrameHdr *hdr = nullptr; in DlPhdrCb() local
936 hdr = (struct DwarfEhFrameHdr *) (pEhHdr->p_vaddr + loadBase); in DlPhdrCb()
948 hdr = &synthHdr; in DlPhdrCb()
951 return FillUnwindTableByEhhdrLocal(hdr, uti); in DlPhdrCb()