asan檢測內存泄漏原理?
asan檢測內存泄漏的原理:
1、ASAN會接管內存申請接口,即用戶的內存全都由ASAN來管理;
2、當進程退出時觸發ASAN內存泄漏檢測,開發可以使用復位單板、重啟設備等一切可以讓進程正常退出的方法來觸發ASAN進行內存泄漏檢測;
3、開始內存泄漏檢查后,ASAN會遍歷當前所有已經分配給用戶但沒有釋放的堆內存,掃描這些內存是否被某個指針引用著,這些指針可能是全局變量、局部變量或者是堆內存里面的指針,如果沒有則認為是泄漏了;如果內存被引用著,比如內存申請完后放在V8的Local數據區、插樹、插鏈表等,是不會報泄漏的。