GWP-ASan और KFENCE क्रमशः यूजरस्पेस और कर्नेल के लिए संभाव्य मेमोरी डिटेक्शन टूल हैं। सक्षम होने पर, आवंटित मेमोरी को घेरने वाले अतिरिक्त मेमोरी पेजों के साथ आवंटन की एक छोटी संख्या संरक्षित होती है। यह नगण्य प्रदर्शन ओवरहेड पर बफर ओवरफ्लो और उपयोग-बाद-मुक्ति का पता लगाने की अनुमति देता है। संरक्षित आवंटन के लिए एक छोटी नमूना दर के साथ भी, जब पैमाने पर तैनात किया जाता है तो वे प्रभावी ढंग से मेमोरी सुरक्षा बग का पता लगा सकते हैं। अपने परिचय के बाद से इन उपकरणों ने कई प्लेटफ़ॉर्म बग की पहचान करने में मदद की है और स्थिरता और सुरक्षा में सुधार के लिए एक मूल्यवान उपकरण साबित हुए हैं। हम विक्रेताओं को उन्हें सक्षम करने और अंतिम उपयोगकर्ता उपकरणों पर पाए गए बग की बारीकी से निगरानी करने के लिए प्रोत्साहित करते हैं।
डेवलपर्स को /data/tombstones
, logcat
जांच करके या अंतिम उपयोगकर्ता बग के लिए विक्रेता DropboxManager
पाइपलाइन की निगरानी करके क्रैश की उपस्थिति की जांच करनी चाहिए।
अधिक जानकारी के लिए एंड्रॉइड नेटिव कोड को डीबग करने पर हमारे दस्तावेज़ देखें।
नेटिव एंड्रॉइड प्लेटफ़ॉर्म कोड को डीबग करनायूजरस्पेस मेमोरी सुरक्षा बग का पता लगाने के लिए GWP-ASan
GWP-ASan को यूज़रस्पेस हीप आवंटन के लिए Android 11 में पेश किया गया था। जब GWP-ASan किसी बग का पता लगाता है, तो यह Cause: [GWP-ASan]:
और प्रक्रिया को समाप्त कर देता है। बग रिपोर्ट में अतिरिक्त आवंटन और आवंटन रद्द करने की जानकारी होती है जिससे मूल कारण की पहचान करना आसान हो जाता है।
GWP-ASan को स्टार्ट-अप पर, 1% सिस्टम प्रक्रियाओं या ऐप्स के लिए और उन अनुप्रयोगों के लिए यादृच्छिक रूप से सक्षम किया जाता है जो अपनी AndroidManifest.xml
फ़ाइल में android:gwpAsanMode
सेट करते हैं।
कर्नेल मेमोरी सुरक्षा बग का पता लगाने के लिए KFENCE
Android 12 ने कर्नेल हीप आवंटन के लिए KFENCE पेश किया। जब KFENCE किसी बग का पता लगाता है, तो यह BUG: KFENCE,
गार्ड पेजों को अक्षम कर देता है और निष्पादन जारी रखता है। यह एक कर्नेल बग पहचान तंत्र को सक्षम करता है जो उपयोगकर्ता अनुभव को न्यूनतम रूप से प्रभावित करता है।
KFENCE के बारे में अधिक जानने के लिए https://www.kernel.org पर उपलब्ध दस्तावेज़ देखें