Lines Matching defs:thread
42 auto process = unwindInfoPtr.callStack.porcessMemoryMap_.find(unwindInfoPtr.thread.pid_);
51 if (unwindInfoPtr.thread.ReadRoMemory(addr, reinterpret_cast<uint8_t *>(data), sizeof(ADDR_TYPE))) {
52 unwindInfoPtr.callStack.porcessMemoryMap_[unwindInfoPtr.thread.pid_][addr] = *data;
93 const VirtualThread &thread)
115 begin - page offset + elf offset = vaddr in real word.(for this thread)
130 auto ehFrameMap = thread.FindMapByFileInfo(map->name, ehFrameHdrElfOffset);
145 const MemMapItem *targetMmap = thread.FindMapByFileInfo(mmap.name_, SectionFileOffset);
174 // all the thread in same process have same map and symbols
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());
245 auto map = unwindInfoPtr->thread.FindMapByAddr(ip);
247 SymbolsFile *symbolsFile = unwindInfoPtr->thread.FindSymbolsFileByMap(*map);
252 HLOGW("no symbols file found for thread %d:%s", unwindInfoPtr->thread.tid_,
253 unwindInfoPtr->thread.name_.c_str());
256 HLOGE("ip 0x%016" UNW_WORD_PFLAG " not found in thread %d:%s", ip,
257 unwindInfoPtr->thread.tid_, unwindInfoPtr->thread.name_.c_str());
410 bool CallStack::DoUnwind(const VirtualThread &thread, std::vector<CallFrame> &callStack,
415 .thread = thread,
419 if (unwindAddrSpaceMap_.count(thread.tid_) == 0) {
422 unwindAddrSpaceMap_.emplace(thread.tid_, addr_space);
426 addr_space = unwindAddrSpaceMap_.at(thread.tid_);
440 bool CallStack::UnwindCallStack(const VirtualThread &thread, u64 *regs, u64 regsNum,
476 return DoUnwind(thread, callStack, maxStackLevel);
478 return DoUnwind2(thread, callStack, maxStackLevel, maxjsDepth, jsReport);
485 we should have CallStack cache for each thread
502 bool CallStack::DoUnwind2(const VirtualThread &thread, std::vector<CallFrame> &callStack,
506 .thread = thread,
510 if (pidUnwinder_.count(thread.pid_) == 0) {
511 pidUnwinder_.emplace(thread.pid_, std::make_shared<Unwinder>(accessor_));
513 auto unwinder = pidUnwinder_[thread.pid_];
566 // all the thread in same process have same mmap and symbols
567 if (tableInfoMap.find(unwindInfoPtr->thread.pid_) == tableInfoMap.end()) {
568 tableInfoMap.emplace(unwindInfoPtr->thread.pid_, DsoUnwindTableInfoMap {});
570 DsoUnwindTableInfoMap &unwTabMap = tableInfoMap[unwindInfoPtr->thread.pid_];
601 auto map = unwindInfoPtr->thread.FindMapByAddr(pc);
603 SymbolsFile *symbolsFile = unwindInfoPtr->thread.FindSymbolsFileByMap(map);
607 HLOGW("no symbols file found for thread %d:%s", unwindInfoPtr->thread.tid_,
608 unwindInfoPtr->thread.name_.c_str());
611 HLOGE("pc 0x%016" UNW_WORD_PFLAG " not found in thread %d:%s", pc,
612 unwindInfoPtr->thread.tid_, unwindInfoPtr->thread.name_.c_str());
653 map = unwindInfoPtr->thread.FindMapByAddr(pc);