GWP-ASan 和 KFENCE

GWP-ASan 和 KFENCE 分別是使用者空間和核心的機率記憶體偵測工具。啟用後,少量分配會受到分配記憶體周圍的附加記憶體頁的保護。這允許以可忽略的效能開銷檢測緩衝區溢位和釋放後使用。即使受保護分配的取樣率很小,當大規模部署時,它們也可以有效地偵測記憶體安全錯誤。自推出以來,這些工具已幫助識別大量平台錯誤,並已被證明是提高穩定性和安全性的寶貴工具。我們鼓勵供應商啟用它們並密切監視最終用戶設備上偵測到的錯誤。

開發人員應透過檢查/data/tombstoneslogcat或監控供應商DropboxManager管道中的最終使用者錯誤來檢查是否有當機。

有關更多信息,請參閱我們有關調試 Android 本機代碼的文檔。

調試本機 Android 平台代碼

GWP-ASan 用於偵測使用者空間記憶體安全錯誤

Android 11 中引入了 GWP-ASan,用於用戶空間堆分配。當 GWP-ASan 偵測到錯誤時,它會記錄崩潰報告,並包含Cause: [GWP-ASan]:並終止進程。錯誤報告包含額外的分配和釋放訊息,可以更輕鬆地識別根本原因。

GWP-ASan 在啟動時隨機啟用,適用於 1% 的系統進程或應用程式以及在AndroidManifest.xml檔案中設定android:gwpAsanMode應用程式。

GWP-ASan

KFENCE 用於偵測核心記憶體安全錯誤

Android 12 引進了 KFENCE 用於核心堆分配。當 KFENCE 偵測到錯誤時,它會記錄以BUG: KFENCE,停用保護頁面並繼續執行。這使得核心錯誤檢測機制能夠最小化對使用者體驗的影響。

要了解有關 KFENCE 的更多信息,請參閱https://www.kernel.org上提供的文檔