Lines Matching defs:Unwinder

52 class Unwinder::Impl {
277 Unwinder::Unwinder(bool needMaps) : impl_(std::make_shared<Impl>(needMaps))
282 Unwinder::Unwinder(int pid, bool crash) : impl_(std::make_shared<Impl>(pid, crash))
286 Unwinder::Unwinder(int pid, int nspid, bool crash) : impl_(std::make_shared<Impl>(pid, nspid, crash))
291 Unwinder::Unwinder(std::shared_ptr<UnwindAccessors> accessors, bool local)
296 void Unwinder::EnableUnwindCache(bool enableCache)
301 void Unwinder::EnableFpCheckMapExec(bool enableFpCheckMapExec)
306 void Unwinder::EnableFillFrames(bool enableFillFrames)
310 void Unwinder::EnableMethodIdLocal(bool enableMethodIdLocal)
314 void Unwinder::IgnoreMixstack(bool ignoreMixstack)
319 void Unwinder::SetRegs(std::shared_ptr<DfxRegs> regs)
324 const std::shared_ptr<DfxRegs>& Unwinder::GetRegs() const
329 const std::shared_ptr<DfxMaps>& Unwinder::GetMaps() const
334 uint16_t Unwinder::GetLastErrorCode() const
339 uint64_t Unwinder::GetLastErrorAddr() const
344 bool Unwinder::GetStackRange(uintptr_t& stackBottom, uintptr_t& stackTop)
349 bool Unwinder::UnwindLocalWithContext(const ucontext_t& context, size_t maxFrameNum, size_t skipFrameNum)
354 bool Unwinder::UnwindLocalWithTid(pid_t tid, size_t maxFrameNum, size_t skipFrameNum)
359 bool Unwinder::UnwindLocal(bool withRegs, bool fpUnwind, size_t maxFrameNum, size_t skipFrameNum)
364 bool Unwinder::UnwindRemote(pid_t tid, bool withRegs, size_t maxFrameNum, size_t skipFrameNum)
369 bool Unwinder::Unwind(void *ctx, size_t maxFrameNum, size_t skipFrameNum)
374 bool Unwinder::UnwindByFp(void *ctx, size_t maxFrameNum, size_t skipFrameNum)
379 bool Unwinder::Step(uintptr_t& pc, uintptr_t& sp, void *ctx)
384 bool Unwinder::FpStep(uintptr_t& fp, uintptr_t& pc, void *ctx)
389 void Unwinder::AddFrame(DfxFrame& frame)
394 const std::vector<DfxFrame>& Unwinder::GetFrames() const
399 const std::vector<uintptr_t>& Unwinder::GetPcs() const
404 void Unwinder::FillFrames(std::vector<DfxFrame>& frames)
409 void Unwinder::FillFrame(DfxFrame& frame)
414 void Unwinder::FillJsFrame(DfxFrame& frame)
419 bool Unwinder::GetFrameByPc(uintptr_t pc, std::shared_ptr<DfxMaps> maps, DfxFrame& frame)
424 void Unwinder::GetFramesByPcs(std::vector<DfxFrame>& frames, std::vector<uintptr_t> pcs)
429 void Unwinder::SetIsJitCrashFlag(bool isCrash)
434 int Unwinder::ArkWriteJitCodeToFile(int fd)
439 const std::vector<uintptr_t>& Unwinder::GetJitCache()
444 bool Unwinder::GetLockInfo(int32_t tid, char* buf, size_t sz)
449 void Unwinder::SetFrames(std::vector<DfxFrame>& frames)
454 void Unwinder::Impl::Init()
465 DFXLOGD("Unwinder mixstack enable: %{public}d", enableMixstack_);
467 DFXLOGD("Unwinder init");
471 void Unwinder::Impl::Clear()
482 void Unwinder::Impl::Destroy()
488 bool Unwinder::Impl::CheckAndReset(void* ctx)
497 bool Unwinder::Impl::GetMainStackRangeInner(uintptr_t& stackBottom, uintptr_t& stackTop)
507 bool Unwinder::Impl::GetStackRange(uintptr_t& stackBottom, uintptr_t& stackTop)
515 bool Unwinder::Impl::UnwindLocalWithTid(const pid_t tid, size_t maxFrameNum, size_t skipFrameNum)
574 bool Unwinder::Impl::UnwindLocalWithContext(const ucontext_t& context, size_t maxFrameNum, size_t skipFrameNum)
584 bool Unwinder::Impl::UnwindLocal(bool withRegs, bool fpUnwind, size_t maxFrameNum, size_t skipFrameNum)
632 bool Unwinder::Impl::UnwindRemote(pid_t tid, bool withRegs, size_t maxFrameNum, size_t skipFrameNum)
635 "Unwinder::Impl::UnwindRemote, tid: " + std::to_string(tid);
660 int Unwinder::Impl::ArkWriteJitCodeToFile(int fd)
663 return DfxArk::JitCodeWriteFile(memory_.get(), &(Unwinder::AccessMem), fd, jitCache_.data(), jitCache_.size());
669 bool Unwinder::Impl::StepArkJsFrame(StepFrame& frame)
716 ArkUnwindParam arkParam(memory_.get(), &(Unwinder::AccessMem), &frame.fp, &frame.sp, &frame.pc,
720 ret = DfxArk::StepArkFrame(memory_.get(), &(Unwinder::AccessMem), &frame.fp, &frame.sp, &frame.pc,
740 bool Unwinder::Impl::Unwind(void *ctx, size_t maxFrameNum, size_t skipFrameNum)
805 bool Unwinder::Impl::UnwindByFp(void *ctx, size_t maxFrameNum, size_t skipFrameNum)
841 bool Unwinder::Impl::FpStep(uintptr_t& fp, uintptr_t& pc, void *ctx)
872 bool Unwinder::Impl::Step(uintptr_t& pc, uintptr_t& sp, void *ctx)
896 bool Unwinder::Impl::StepInner(const bool isSigFrame, StepFrame& frame, void *ctx)
1079 bool Unwinder::Impl::Apply(std::shared_ptr<DfxRegs> regs, std::shared_ptr<RegLocState> rs)
1106 void Unwinder::Impl::DoPcAdjust(uintptr_t& pc)
1126 uintptr_t Unwinder::Impl::StripPac(uintptr_t inAddr, uintptr_t pacMask)
1146 const std::vector<DfxFrame>& Unwinder::Impl::GetFrames()
1154 void Unwinder::Impl::AddFrame(const StepFrame& frame, std::shared_ptr<DfxMap> map)
1176 void Unwinder::Impl::AddFrame(DfxFrame& frame)
1181 bool Unwinder::AccessMem(void* memory, uintptr_t addr, uintptr_t *val)
1186 void Unwinder::FillLocalFrames(std::vector<DfxFrame>& frames)
1193 if (dl_iterate_phdr(Unwinder::Impl::DlPhdrCallback, &(*it)) != 1) {
1202 void Unwinder::Impl::FillFrames(std::vector<DfxFrame>& frames)
1216 void Unwinder::Impl::FillFrame(DfxFrame& frame)
1243 void Unwinder::Impl::FillJsFrame(DfxFrame& frame)
1279 bool Unwinder::Impl::GetFrameByPc(uintptr_t pc, std::shared_ptr<DfxMaps> maps, DfxFrame &frame)
1293 bool Unwinder::Impl::GetLockInfo(int32_t tid, char* buf, size_t sz)
1324 void Unwinder::Impl::GetFramesByPcs(std::vector<DfxFrame>& frames, std::vector<uintptr_t> pcs)
1345 void Unwinder::GetLocalFramesByPcs(std::vector<DfxFrame>& frames, std::vector<uintptr_t> pcs)
1357 bool Unwinder::GetSymbolByPc(uintptr_t pc, std::shared_ptr<DfxMaps> maps, std::string& funcName, uint64_t& funcOffset)
1376 std::string Unwinder::GetFramesStr(const std::vector<DfxFrame>& frames)
1381 int Unwinder::Impl::DlPhdrCallback(struct dl_phdr_info *info, size_t size, void *data)