diff --git a/pmu/pfm/uncore.cpp b/pmu/pfm/uncore.cpp index 674e14f748417eb3bd3bbbad3ea405cd4291df74..9c2d9b0dc1330d2d7d5302ac4921e600b5392242 100644 --- a/pmu/pfm/uncore.cpp +++ b/pmu/pfm/uncore.cpp @@ -133,12 +133,15 @@ int FillUncoreFields(const char* pmuName, PmuEvt *evt) bool CheckUncoreRawEvent(const char *pmuName) { string strName = pmuName; + auto findSlash = strName.find('/'); + if (findSlash == string::npos) { + return false; + } unsigned numEvt; auto eventList = PmuEventList(UNCORE_EVENT, &numEvt); if (eventList == nullptr) { return false; } - auto findSlash = strName.find('/'); string devName = strName.substr(0, findSlash); string evtName = strName.substr(devName.size() + 1, strName.size() - 1 - (devName.size() + 1)); // check if "config=" at back part of pmuName diff --git a/symbol/symbol_resolve.cpp b/symbol/symbol_resolve.cpp index b44cfffee12dce3146f5bb4cbec459d733eea755..504e526b43ae1ee80f55bbf3db1a3886eda13c0b 100644 --- a/symbol/symbol_resolve.cpp +++ b/symbol/symbol_resolve.cpp @@ -767,7 +767,7 @@ void SymbolResolve::SearchDwarfInfo(MyDwarf& myDwarf, unsigned long addr, struct strcpy(symbol->fileName, dwarfEntry.fileName.c_str()); symbol->lineNum = dwarfEntry.lineNum; } else { - strcpy(symbol->fileName, "Uknown"); + strcpy(symbol->fileName, "UKNOWN"); symbol->lineNum = 0; } } @@ -891,10 +891,15 @@ struct Symbol* SymbolResolve::MapUserAddr(int pid, unsigned long addr) addrToSearch = addrToSearch - module->start; } this->SearchElfInfo(myElf, addrToSearch, symbol, &symbol->offset); + } else { + strcpy(symbol->symbolName, "UNKNOWN"); } if (this->dwarfMap.find(module->moduleName) != this->dwarfMap.end()) { this->SearchDwarfInfo(this->dwarfMap.at(module->moduleName), addrToSearch, symbol); + } else { + strcpy(symbol->fileName, "UKNOWN"); + symbol->lineNum = 0; } symbol->codeMapAddr = addrToSearch; this->symbolMap.at(pid).insert({addr, symbol});