Lines Matching refs:ip
276 const Symbol VirtualRuntime::GetKernelSymbol(uint64_t ip, const std::vector<MemMapItem> &memMaps, in GetKernelSymbol() argument
279 Symbol vaddrSymbol(ip, thread.name_); in GetKernelSymbol()
281 if (ip > map.begin_ && ip < map.end_) { in GetKernelSymbol()
283 ip, map.begin_, map.end_, map.name_.c_str()); in GetKernelSymbol()
289 symbolsFile->GetVaddrInSymbols(ip, map.begin_, map.pageoffset_); in GetKernelSymbol()
292 vaddrSymbol.fileVaddr_, ip, map.name_.c_str()); in GetKernelSymbol()
297 foundSymbols.taskVaddr_ = ip; in GetKernelSymbol()
300 ip, vaddrSymbol.fileVaddr_, map.name_.c_str()); in GetKernelSymbol()
307 HLOGW("addr 0x%" PRIx64 " in map but NOT found the symbol file %s", ip, in GetKernelSymbol()
310 HLOGM("addr 0x%" PRIx64 " not in map 0x%" PRIx64 " - 0x%" PRIx64 " from %s", ip, in GetKernelSymbol()
317 const Symbol VirtualRuntime::GetUserSymbol(uint64_t ip, const VirtualThread &thread) in GetUserSymbol() argument
319 Symbol vaddrSymbol(ip, thread.name_); in GetUserSymbol()
320 const MemMapItem *mmap = thread.FindMapByAddr(ip); in GetUserSymbol()
325 symbolsFile->GetVaddrInSymbols(ip, mmap->begin_, mmap->pageoffset_); in GetUserSymbol()
329 vaddrSymbol.fileVaddr_, ip, mmap->name_.c_str()); in GetUserSymbol()
334 foundSymbols.taskVaddr_ = ip; in GetUserSymbol()
337 HLOGW("addr 0x%" PRIx64 " vaddr 0x%" PRIx64 " NOT found in symbol file %s", ip, in GetUserSymbol()
344 HLOGW("addr 0x%" PRIx64 " in map but NOT found the symbol file %s", ip, in GetUserSymbol()
350 thread.ReportVaddrMapMiss(ip); in GetUserSymbol()
356 bool VirtualRuntime::GetSymbolCache(uint64_t ip, pid_t pid, pid_t tid, Symbol &symbol, in GetSymbolCache() argument
359 if (context != PERF_CONTEXT_USER and kernelSymbolCache_.count(ip)) { in GetSymbolCache()
360 if (kernelSymbolCache_.find(ip) == kernelSymbolCache_.end()) { in GetSymbolCache()
363 Symbol &foundSymbol = kernelSymbolCache_[ip]; in GetSymbolCache()
365 HLOGM("hit kernel cache 0x%" PRIx64 " %d", ip, foundSymbol.hit_); in GetSymbolCache()
368 } else if (threadSymbolCache_[tid].count(ip)) { in GetSymbolCache()
369 Symbol &foundSymbol = threadSymbolCache_[tid][ip]; in GetSymbolCache()
371 HLOGM("hit user cache 0x%" PRIx64 " %d", ip, foundSymbol.hit_); in GetSymbolCache()
380 void VirtualRuntime::UpdateSymbolCache(uint64_t ip, Symbol &symbol, in UpdateSymbolCache() argument
384 HLOG_ASSERT_MESSAGE(cache.count(ip) == 0, "already have cached ip 0x%" PRIx64 "", ip); in UpdateSymbolCache()
385 cache[ip] = symbol; in UpdateSymbolCache()
388 const Symbol VirtualRuntime::GetSymbol(uint64_t ip, pid_t pid, pid_t tid, in GetSymbol() argument
391 HLOGM("try find tid %u ip 0x%" PRIx64 " in %zu symbolsFiles ", tid, ip, symbolsFiles_.size()); in GetSymbol()
396 if (GetSymbolCache(ip, pid, tid, symbol, context)) { in GetSymbol()
401 symbol = GetUserSymbol(ip, GetThread(pid, tid)); in GetSymbol()
403 HLOGM("GetUserSymbol valid tid = %d ip = 0x%" PRIx64 "", tid, ip); in GetSymbol()
404 threadSymbolCache_[tid][ip] = symbol; in GetSymbol()