Home | History | Annotate | Download | only in Unwind

Lines Matching defs:pc

45   static pint_t findFDE(pint_t mh, pint_t pc);
99 typename A::pint_t DwarfFDECache<A>::findFDE(pint_t mh, pint_t pc) {
104 if ((p->ip_start <= pc) && (pc < p->ip_end)) {
442 bool getInfoFromEHABISection(pint_t pc, const UnwindInfoSections &sects);
446 bool getInfoFromDwarfSection(pint_t pc, const UnwindInfoSections &sects,
457 bool getInfoFromCompactEncodingSection(pint_t pc,
688 pint_t pc,
695 EHABISectionIterator<A> itNextPC = std::upper_bound(begin, end, pc);
817 bool UnwindCursor<A, R>::getInfoFromDwarfSection(pint_t pc,
826 foundFDE = CFI_Parser<A>::findFDE(_addressSpace, pc, sects.dwarf_section,
834 _addressSpace, pc, sects.dwarf_index_section,
840 pint_t cachedFDE = DwarfFDECache<A>::findFDE(sects.dso_base, pc);
843 CFI_Parser<A>::findFDE(_addressSpace, pc, sects.dwarf_section,
851 foundFDE = CFI_Parser<A>::findFDE(_addressSpace, pc, sects.dwarf_section,
857 if (CFI_Parser<A>::parseFDEInstructions(_addressSpace, fdeInfo, cieInfo, pc,
883 //_LIBUNWIND_DEBUG_LOG("can't find/use FDE for pc=0x%llX\n", (uint64_t)pc);
891 bool UnwindCursor<A, R>::getInfoFromCompactEncodingSection(pint_t pc,
895 fprintf(stderr, "getInfoFromCompactEncodingSection(pc=0x%llX, mh=0x%llX)\n",
896 (uint64_t)pc, (uint64_t)sects.dso_base);
904 pint_t targetFunctionOffset = pc - sects.dso_base;
953 // binary search looks for entry with e where index[e].offset <= pc <
983 if (pc < funcStart) {
987 "\tpc not in table, pc=0x%llX, funcStart=0x%llX, funcEnd=0x%llX\n",
988 (uint64_t) pc, (uint64_t) funcStart, (uint64_t) funcEnd);
991 if (pc > funcEnd) {
995 "\tpc not in table, pc=0x%llX, funcStart=0x%llX, funcEnd=0x%llX\n",
996 (uint64_t) pc, (uint64_t) funcStart, (uint64_t) funcEnd);
1007 // binary search looks for entry with e where index[e].offset <= pc <
1038 if (pc < funcStart) {
1039 _LIBUNWIND_DEBUG_LOG("malformed __unwind_info, pc=0x%llX not in second "
1041 (uint64_t) pc, (uint64_t) funcStart);
1044 if (pc > funcEnd) {
1045 _LIBUNWIND_DEBUG_LOG("malformed __unwind_info, pc=0x%llX not in second "
1047 (uint64_t) pc, (uint64_t) funcEnd);
1097 "pc=0x%0llX, but lsda table has no entry\n",
1098 encoding, (uint64_t) pc);
1122 fprintf(stderr, "getInfoFromCompactEncodingSection(pc=0x%llX), "
1124 (uint64_t) pc, personalityDelta, (uint64_t) personality);
1128 fprintf(stderr, "getInfoFromCompactEncodingSection(pc=0x%llX), "
1130 (uint64_t) pc, encoding, (uint64_t) lsda, (uint64_t) funcStart);
1148 pint_t pc = (pint_t)this->getReg(UNW_REG_IP);
1152 pc &= (pint_t)~0x1;
1158 // To disambiguate this, back up the pc when we know it is a return
1161 --pc;
1163 // Ask address space object to find unwind sections for this pc.
1165 if (_addressSpace.findUnwindSections(pc, sects)) {
1169 if (this->getInfoFromCompactEncodingSection(pc, sects)) {
1174 if (this->getInfoFromDwarfSection(pc, sects, dwarfOffset)) {
1192 if (this->getInfoFromDwarfSection(pc, sects)) {
1201 if (sects.arm_section != 0 && this->getInfoFromEHABISection(pc, sects))
1207 // There is no static unwind info for this pc. Look to see if an FDE was
1209 pint_t cachedFDE = DwarfFDECache<A>::findFDE(0, pc);
1218 pc, &prolog)) {
1240 if (_addressSpace.findOtherFDE(pc, fde)) {
1244 // Double check this FDE is for a function that includes the pc.
1245 if ((fdeInfo.pcStart <= pc) && (pc < fdeInfo.pcEnd)) {
1248 cieInfo, pc, &prolog)) {
1291 // update info based on new PC