Lines Matching defs:callStack
42 auto process = unwindInfoPtr.callStack.porcessMemoryMap_.find(unwindInfoPtr.thread.pid_);
43 if (process != unwindInfoPtr.callStack.porcessMemoryMap_.end()) {
52 unwindInfoPtr.callStack.porcessMemoryMap_[unwindInfoPtr.thread.pid_][addr] = *data;
173 auto &dynInfoProcessMap = unwindInfoPtr->callStack.unwindTableInfoMap_;
278 if (addr < unwindInfoPtr->callStack.stackPoint_ or
279 addr + sizeof(unw_word_t) >= unwindInfoPtr->callStack.stackEnd_) {
285 unwindInfoPtr->callStack.stackPoint_, unwindInfoPtr->callStack.stackEnd_,
286 unwindInfoPtr->callStack.stackEnd_ - unwindInfoPtr->callStack.stackPoint_);
290 stackOffset = addr - unwindInfoPtr->callStack.stackPoint_;
291 *valuePoint = *(unw_word_t *)&unwindInfoPtr->callStack.stack_[stackOffset];
311 if (unwindInfoPtr->callStack.regsNum_ == 0) {
315 RegisterGetValue(val, unwindInfoPtr->callStack.regs_, perfRegIndex, unwindInfoPtr->callStack.regsNum_),
354 void CallStack::UnwindStep(unw_cursor_t &c, std::vector<CallFrame> &callStack, size_t maxStackLevel)
356 while (callStack.size() < maxStackLevel) {
379 HLOGV("unwind:%zu: ip 0x%" UNW_WORD_PFLAG " sp 0x%" UNW_WORD_PFLAG "", callStack.size(),
381 if (callStack.back().ip_ == ip && callStack.back().sp_ == sp) {
385 callStack.emplace_back(ip, sp);
410 bool CallStack::DoUnwind(const VirtualThread &thread, std::vector<CallFrame> &callStack,
416 .callStack = *this,
434 UnwindStep(c, callStack, maxStackLevel);
441 const u8 *stack, u64 stackSize, std::vector<CallFrame> &callStack,
465 HLOGV("unwind:%zu: ip 0x%" PRIx64 " sp 0x%" PRIx64 "", callStack.size(), ip, sp);
466 callStack.emplace_back(ip, sp);
476 return DoUnwind(thread, callStack, maxStackLevel);
478 return DoUnwind2(thread, callStack, maxStackLevel, maxjsDepth, jsReport);
502 bool CallStack::DoUnwind2(const VirtualThread &thread, std::vector<CallFrame> &callStack,
507 .callStack = *this,
533 callStack.clear();
537 callStack.emplace_back(frame.pc, frame.sp, frame.isJsFrame);
545 callStack.emplace_back(frame.pc, frame.sp, frame.isJsFrame);
565 auto &tableInfoMap = unwindInfoPtr->callStack.unwindTableInfoMap_;
628 if (addr < unwindInfoPtr->callStack.stackPoint_ or
629 addr + sizeof(uintptr_t) >= unwindInfoPtr->callStack.stackEnd_) {
635 unwindInfoPtr->callStack.stackPoint_, unwindInfoPtr->callStack.stackEnd_,
636 unwindInfoPtr->callStack.stackEnd_ - unwindInfoPtr->callStack.stackPoint_);
640 size_t stackOffset = addr - unwindInfoPtr->callStack.stackPoint_;
641 *val = *(uintptr_t *)&unwindInfoPtr->callStack.stack_[stackOffset];