Lines Matching defs:symbol
112 void VirtualRuntime::MakeCallFrame(DfxSymbol &symbol, CallFrame &callFrame)
114 callFrame.vaddrInFile_ = symbol.funcVaddr_;
115 callFrame.symbolName_ = symbol.symbolName_;
116 callFrame.symbolIndex_ = symbol.index_;
117 callFrame.filePath_ = symbol.module_.empty() ? symbol.comm_ : symbol.module_;
118 callFrame.symbolOffset_ = symbol.offset_;
119 callFrame.callFrameId_ = symbol.symbolId_;
120 callFrame.symbolNameId_ = symbol.symbolNameId_;
121 callFrame.filePathId_ = symbol.filePathId_;
122 if (symbol.funcVaddr_ != 0) {
123 callFrame.offset_ = symbol.funcVaddr_;
150 auto symbol = GetSymbol(callFrame, pid, tid,
152 if (symbol.IsValid()) {
153 MakeCallFrame(symbol, callFrame);
184 HLOGV(" (%u)unwind symbol: %*s%s", index, index, "", callFrame.ToSymbolString().c_str());
238 // only get js symbol if report js frame and offline symbolization for dwarf mode
353 HLOGV("found symbol vaddr 0x%" PRIx64 " for runtime vaddr 0x%" PRIx64
362 HLOGW("addr 0x%" PRIx64 " vaddr 0x%" PRIx64 " NOT found in symbol file %s",
369 HLOGW("addr 0x%" PRIx64 " in map but NOT found the symbol file %s", ip,
415 HLOGW("addr 0x%" PRIx64 " in map but NOT found the symbol file %s", ip,
427 bool VirtualRuntime::GetSymbolCache(uint64_t ip, DfxSymbol &symbol, const VirtualThread &thread)
433 symbol = foundSymbolIter->second;
440 void VirtualRuntime::UpdateSymbolCache(uint64_t ip, DfxSymbol &symbol,
445 cache[ip] = symbol;
452 DfxSymbol symbol;
454 if (ArktsGetSymbolCache(callFrame, symbol)) {
455 return symbol;
457 symbol.filePathId_ = FillArkTsFilePath(callFrame.filePath_);
458 symbol.module_ = callFrame.filePath_;
459 symbol.symbolName_ = callFrame.symbolName_;
460 symbol.symbolId_ = userSymbolCache_.size() + 1;
462 FillSymbolNameId(callFrame, symbol);
463 FillFileSet(callFrame, symbol);
466 userSymbolCache_[std::pair(callFrame.ip_, symbol.filePathId_)] = symbol;
467 return symbol;
469 } else if (GetSymbolCache(callFrame.ip_, symbol, GetThread(pid, tid))) {
470 return symbol;
472 if (context == PERF_CONTEXT_USER or (context == PERF_CONTEXT_MAX and !symbol.IsValid())) {
474 symbol = GetUserSymbol(callFrame.ip_, GetThread(pid, tid));
475 if (symbol.IsValid()) {
477 symbol.symbolId_ = userSymbolCache_.size() + 1;
479 FillSymbolNameId(callFrame, symbol);
480 FillFileSet(callFrame, symbol);
483 userSymbolCache_[std::pair(callFrame.ip_, symbol.filePathId_)] = symbol;
489 return symbol;
528 void VirtualRuntime::FillSymbolNameId(CallFrame& callFrame, DfxSymbol& symbol)
530 auto itFuntion = functionMap_.find(std::string(symbol.symbolName_));
532 symbol.symbolNameId_ = itFuntion->second;
534 symbol.symbolNameId_ = functionMap_.size() + 1;
535 functionMap_[std::string(symbol.symbolName_)] = symbol.symbolNameId_;
540 void VirtualRuntime::FillFileSet(CallFrame& callFrame, const DfxSymbol& symbol)
542 auto itFile = fileSet_.find(symbol.filePathId_);
545 fileSet_.insert(symbol.filePathId_);
620 bool VirtualRuntime::ArktsGetSymbolCache(CallFrame& callFrame, DfxSymbol &symbol)
626 symbol = foundSymbolIter->second;
652 void VirtualRuntime::FillJsSymbolCache(CallFrame& callFrame, const DfxSymbol& symbol)
654 userSymbolCache_[std::pair(callFrame.ip_, symbol.filePathId_)] = symbol;