diff --git a/src/symbols_file.cpp b/src/symbols_file.cpp index e0dc295f6ea9ab4e0112a6743c120990f4e29263..f0321b16edd9659871afc343df1499af50bbf9a6 100644 --- a/src/symbols_file.cpp +++ b/src/symbols_file.cpp @@ -838,6 +838,18 @@ public: return symbol; } + bool LoadDebugInfo(std::shared_ptr map, const std::string &symbolFilePath) override + { + if (onRecording_) { + if (IsHM()) { + debugInfoLoaded_ = true; + debugInfoLoadResult_ = true; + return true; + } + } + return ElfFileSymbols::LoadDebugInfo(map, symbolFilePath); + } + ~KernelThreadSymbols() override {} }; diff --git a/test/unittest/common/native/symbols_file_test.cpp b/test/unittest/common/native/symbols_file_test.cpp index 2b49eeabc09f1d74dc4eb07e34886c9423e73117..503e8f9dbf28087d03a2c598a0b5a29c871b8b51 100644 --- a/test/unittest/common/native/symbols_file_test.cpp +++ b/test/unittest/common/native/symbols_file_test.cpp @@ -1087,6 +1087,20 @@ HWTEST_F(SymbolsFileTest, V8SymbolsErr, TestSize.Level1) auto symbol = symbolsFile->GetSymbolWithPcAndMap(ip, map); EXPECT_EQ(symbol.IsValid(), false); } + +/** + * @tc.name: KernerlThreadSymbolsParse + * @tc.desc: Test parse kernerlthreadsymbols + * @tc.type: FUNC + */ +HWTEST_F(SymbolsFileTest, KernerlThreadSymbolsParse, TestSize.Level1) +{ + const std::string filename = DEVHOST_LINUX_FILE_NAME; + auto symbolsFile = SymbolsFile::CreateSymbolsFile(filename); + if (IsHM()) { + EXPECT_EQ(symbolsFile->LoadDebugInfo(), true); + } +} } // namespace HiPerf } // namespace Developtools } // namespace OHOS