Lines Matching defs:unwindInfoPtr

39 bool CallStack::ReadVirtualThreadMemory(UnwindInfo &unwindInfoPtr, ADDR_TYPE addr,

42 auto process = unwindInfoPtr.callStack.porcessMemoryMap_.find(unwindInfoPtr.thread.pid_);
43 if (process != unwindInfoPtr.callStack.porcessMemoryMap_.end()) {
51 if (unwindInfoPtr.thread.ReadRoMemory(addr, reinterpret_cast<uint8_t *>(data), sizeof(ADDR_TYPE))) {
52 unwindInfoPtr.callStack.porcessMemoryMap_[unwindInfoPtr.thread.pid_][addr] = *data;
169 UnwindInfo *unwindInfoPtr, unw_addr_space_t as, unw_word_t ip,
173 auto &dynInfoProcessMap = unwindInfoPtr->callStack.unwindTableInfoMap_;
175 if (dynInfoProcessMap.find(unwindInfoPtr->thread.pid_) == dynInfoProcessMap.end()) {
176 dynInfoProcessMap.emplace(unwindInfoPtr->thread.pid_, dsoUnwDynInfoMap {});
178 dsoUnwDynInfoMap &dynFileMap = dynInfoProcessMap[unwindInfoPtr->thread.pid_];
195 if (fillUDI(newdi, *symbolsFile, map, unwindInfoPtr->thread)) {
201 HLOG_ASSERT(dynInfoProcessMap.find(unwindInfoPtr->thread.pid_) != dynInfoProcessMap.end());
205 dynInfoProcessMap.at(unwindInfoPtr->thread.pid_).at(symbolsFile->filePath_);
233 HLOGW("no debug info found for thread %d:%s", unwindInfoPtr->thread.tid_,
234 unwindInfoPtr->thread.name_.c_str());
242 UnwindInfo *unwindInfoPtr = static_cast<UnwindInfo *>(arg);
245 auto map = unwindInfoPtr->thread.FindMapByAddr(ip);
247 SymbolsFile *symbolsFile = unwindInfoPtr->thread.FindSymbolsFileByMap(*map);
249 return FindUnwindTable(symbolsFile, map, unwindInfoPtr, as, ip, pi, need_unwind_info,
252 HLOGW("no symbols file found for thread %d:%s", unwindInfoPtr->thread.tid_,
253 unwindInfoPtr->thread.name_.c_str());
257 unwindInfoPtr->thread.tid_, unwindInfoPtr->thread.name_.c_str());
266 UnwindInfo *unwindInfoPtr = static_cast<UnwindInfo *>(arg);
278 if (addr < unwindInfoPtr->callStack.stackPoint_ or
279 addr + sizeof(unw_word_t) >= unwindInfoPtr->callStack.stackEnd_) {
280 if (ReadVirtualThreadMemory(*unwindInfoPtr, addr, valuePoint)) {
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];
301 UnwindInfo *unwindInfoPtr = static_cast<UnwindInfo *>(arg);
311 if (unwindInfoPtr->callStack.regsNum_ == 0) {
315 RegisterGetValue(val, unwindInfoPtr->callStack.regs_, perfRegIndex, unwindInfoPtr->callStack.regsNum_),
561 int CallStack::FillUnwindTable(SymbolsFile *symbolsFile, std::shared_ptr<DfxMap> map, UnwindInfo *unwindInfoPtr,
565 auto &tableInfoMap = unwindInfoPtr->callStack.unwindTableInfoMap_;
567 if (tableInfoMap.find(unwindInfoPtr->thread.pid_) == tableInfoMap.end()) {
568 tableInfoMap.emplace(unwindInfoPtr->thread.pid_, DsoUnwindTableInfoMap {});
570 DsoUnwindTableInfoMap &unwTabMap = tableInfoMap[unwindInfoPtr->thread.pid_];
600 UnwindInfo *unwindInfoPtr = static_cast<UnwindInfo *>(arg);
601 auto map = unwindInfoPtr->thread.FindMapByAddr(pc);
603 SymbolsFile *symbolsFile = unwindInfoPtr->thread.FindSymbolsFileByMap(map);
605 return FillUnwindTable(symbolsFile, map, unwindInfoPtr, pc, outTableInfo);
607 HLOGW("no symbols file found for thread %d:%s", unwindInfoPtr->thread.tid_,
608 unwindInfoPtr->thread.name_.c_str());
612 unwindInfoPtr->thread.tid_, unwindInfoPtr->thread.name_.c_str());
619 UnwindInfo *unwindInfoPtr = static_cast<UnwindInfo *>(arg);
628 if (addr < unwindInfoPtr->callStack.stackPoint_ or
629 addr + sizeof(uintptr_t) >= unwindInfoPtr->callStack.stackEnd_) {
630 if (ReadVirtualThreadMemory(*unwindInfoPtr, addr, val)) {
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];
652 UnwindInfo *unwindInfoPtr = static_cast<UnwindInfo *>(arg);
653 map = unwindInfoPtr->thread.FindMapByAddr(pc);