From e2c11662bdcc8ef5b36ceec96bebaae92d55ec66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E5=86=AC=E5=86=AC=E5=86=AC?= Date: Wed, 4 Dec 2024 15:39:00 +0800 Subject: [PATCH] Message:fixCodes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 郑冬冬冬 --- services/appdfr/include/appfreeze_manager.h | 2 +- services/appdfr/src/appfreeze_manager.cpp | 28 +++++++++++---------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/services/appdfr/include/appfreeze_manager.h b/services/appdfr/include/appfreeze_manager.h index a5e2457d17..507821980c 100644 --- a/services/appdfr/include/appfreeze_manager.h +++ b/services/appdfr/include/appfreeze_manager.h @@ -95,7 +95,7 @@ private: std::map> BinderParser(std::ifstream& fin, std::string& stack, std::set& asyncPids) const; std::map> BinderLineParser(std::ifstream& fin, std::string& stack, std::map& asyncBinderMap, - std::vector>& freezeAsyncSpacePairs) const; + std::vector>& freeAsyncSpacePairs) const; std::vector GetFileToList(std::string line) const; void ParseBinderPids(const std::map>& binderInfo, std::set& pids, int pid, int layer) const; std::set GetBinderPeerPids(std::string& stack, int pid, std::set& asyncPids) const; diff --git a/services/appdfr/src/appfreeze_manager.cpp b/services/appdfr/src/appfreeze_manager.cpp index 05a0ad7d95..69e616257f 100644 --- a/services/appdfr/src/appfreeze_manager.cpp +++ b/services/appdfr/src/appfreeze_manager.cpp @@ -278,23 +278,25 @@ int AppfreezeManager::AcquireStack(const FaultData& faultData, std::string binderPidsStr; std::set asyncPids; std::set syncPids = GetBinderPeerPids(binderInfo, pid, asyncPids); - std::set pids; - pids.insert(syncPids.begin(), syncPids.end()); - pids.insert(asyncPids.begin(), asyncPids.end()); - for (auto& pidTemp : pids) { - TAG_LOGI(AAFwkTag::APPDFR, "pidTemp pids:%{public}d", pidTemp); + if (syncPids.empty()) { + binderInfo +="PeerBinder pids is empty\n"; + } + for (auto& pidTemp : syncPids) { + TAG_LOGI(AAFwkTag::APPDFR, "PeerBinder pidTemp pids:%{public}d", pidTemp); if (pidTemp != pid) { std::string content = "PeerBinder catcher stacktrace for pid : " + std::to_string(pidTemp) + "\n"; content += CatcherStacktrace(pidTemp); binderInfo += content; - if (syncPids.find(pidTemp) != syncPids.end()) { - binderPidsStr += " " + std::to_string(pidTemp); - } + binderPidsStr += " " + std::to_string(pidTemp); } } - - if (pids.empty()) { - binderInfo +="PeerBinder pids is empty\n"; + for (auto& pidTemp : asyncPids) { + TAG_LOGI(AAFwkTag::APPDFR, "AsyncBinder pidTemp pids:%{public}d", pidTemp); + if (pidTemp != pid && syncPids.find(pidTemp) == syncPids.end()) { + std::string content = "AsyncBinder catcher stacktrace for pid : " + std::to_string(pidTemp) + "\n"; + content += CatcherStacktrace(pidTemp); + binderInfo += content; + } } std::string fileName = faultData.errorObject.name + "_" + @@ -353,10 +355,10 @@ std::map> AppfreezeManager::BinderParser(std::ifstream& fin, int asyncBinderSize = asyncBinderPairs.size(); int individualMaxSize = 2; for (int i = 0; i < individualMaxSize; i++) { - if (freeAsyncSpaceSize > 0 && i < freeAsyncSpaceSize) { + if (i < freeAsyncSpaceSize) { asyncPids.insert(freeAsyncSpacePairs[i].first); } - if (asyncBinderSize > 0 && i < asyncBinderSize) { + if (i < asyncBinderSize) { asyncPids.insert(asyncBinderPairs[i].first); } }