asan檢測記憶體洩漏原理?

asan檢測記憶體洩漏原理?流水何慚2022-11-28 06:07:53

asan檢測記憶體洩漏的原理:

1、ASAN會接管記憶體申請介面,即使用者的記憶體全都由ASAN來管理;

2、當程序退出時觸發ASAN記憶體洩漏檢測,開發可以使用復位單板、重啟裝置等一切可以讓程序正常退出的方法來觸發ASAN進行記憶體洩漏檢測;

3、開始記憶體洩漏檢查後,ASAN會遍歷當前所有已經分配給使用者但沒有釋放的堆記憶體,掃描這些記憶體是否被某個指標引用著,這些指標可能是全域性變數、區域性變數或者是堆記憶體裡面的指標,如果沒有則認為是洩漏了;如果記憶體被引用著,比如記憶體申請完後放在V8的Local資料區、插樹、插連結串列等,是不會報洩漏的。