Lines Matching refs:callStack
264 auto &dynInfoProcessMap = unwindInfoPtr->callStack.unwindDynInfoMap_;
375 if (__builtin_expect(unwindInfoPtr.thread.pid_ == unwindInfoPtr.callStack.lastPid_ &&
376 vaddr == unwindInfoPtr.callStack.lastAddr_, true)) {
377 *data = unwindInfoPtr.callStack.lastData_;
382 unwindInfoPtr.callStack.lastPid_ = unwindInfoPtr.thread.pid_;
383 unwindInfoPtr.callStack.lastAddr_ = vaddr;
384 unwindInfoPtr.callStack.lastData_ = *data;
387 unwindInfoPtr.callStack.lastPid_ = -1;
388 unwindInfoPtr.callStack.lastAddr_ = 0;
392 auto process = unwindInfoPtr.callStack.porcessMemoryMap_.find(unwindInfoPtr.thread.pid_);
393 if (process != unwindInfoPtr.callStack.porcessMemoryMap_.end()) {
402 unwindInfoPtr.callStack.porcessMemoryMap_[unwindInfoPtr.thread.pid_][vaddr] = *data;
429 if (addr < unwindInfoPtr->callStack.stackPoint_ or
430 addr + sizeof(unw_word_t) >= unwindInfoPtr->callStack.stackEnd_) {
435 unwindInfoPtr->callStack.stackPoint_, unwindInfoPtr->callStack.stackEnd_,
436 unwindInfoPtr->callStack.stackEnd_ - unwindInfoPtr->callStack.stackPoint_);
440 stackOffset = addr - unwindInfoPtr->callStack.stackPoint_;
441 *valuePoint = *(unw_word_t *)&unwindInfoPtr->callStack.stack_[stackOffset];
474 if (unwindInfoPtr->callStack.regsNum_ == 0) {
478 …if (!RegisterGetValue(val, unwindInfoPtr->callStack.regs_, perfRegIndex, unwindInfoPtr->callStack.…
521 void CallStack::UnwindStep(unw_cursor_t &c, std::vector<CallFrame> &callStack, size_t maxStackLevel) argument
523 while (callStack.size() < maxStackLevel) {
546 …DFXLOG_DEBUG("unwind:%zu: ip 0x%" UNW_WORD_PFLAG " sp 0x%" UNW_WORD_PFLAG "", callStack.size(), ip…
547 if (callStack.back().ip_ == ip && callStack.back().sp_ == sp) {
551 callStack.emplace_back(ip, sp);
582 bool CallStack::DoUnwind(const VirtualThread &thread, std::vector<CallFrame> &callStack, argument
588 .callStack = *this,
609 UnwindStep(c, callStack, maxStackLevel);
616 const u8 *stack, u64 stackSize, std::vector<CallFrame> &callStack, argument
641 DFXLOG_DEBUG("unwind:%zu: ip 0x%" PRIx64 " sp 0x%" PRIx64 "", callStack.size(), ip, sp);
642 callStack.emplace_back(ip, sp);
651 return DoUnwind(thread, callStack, maxStackLevel);
658 const u8 *stack, u64 stackSize, std::vector<CallFrame> &callStack, argument
683 DFXLOG_DEBUG("unwind:%zu: ip 0x%" PRIx64 " sp 0x%" PRIx64 "", callStack.size(), ip, sp);
684 callStack.emplace_back(ip, sp);
693 return DoUnwind(thread, callStack, maxStackLevel);