在 GCC 10 中,狀態跟蹤組件存在很多崩潰錯誤,其中一個大問題是使用唯一 ID 來跟蹤符號值和區域,目前修改為使用唯一物件(單例)來表示符號值和區域,另一個大問題是之前的實作中,符號值和區域被用來表示記憶體區域的符號訪問路徑到符號值的映射,目前修改為記憶體中位偏移群集的映射,
GCC 10 中的記憶體泄漏檢測存在很多誤報,并且分析器的確切行為因呼叫而異,由于哈希演算法,迭代的順序將隱式取決于精確的指標值,指標值可能由于地址空間布局隨機化而不同,從而導致不同的結果,該部分內容已經重寫,新的記憶體泄漏檢測將更少誤報,并且分析器的行為在每次運行時都可重現,
同時,該靜態分析功能新增了 4 個 -Wanalyzer 前綴的警告,這些警告都對應 C 和 C++ 中已經存在的 -W 警告,但是實作并不相同,
除上述改動以外,靜態分析器還有兩個正在開發中的新功能:標記 API 和 以 HTML 方式輸出結果,前者可以檢測泄漏和雙重釋放,后者是對輸出報告可視化的優化,比如 Double-free bug、Signal handler issue、Memory leak,
目前 GCC 11 已經進入最后開發階段,預計于下個季度發布,并且 -fanalyzer 現在僅支持 C,對 C++ 的支持計劃于 GCC 12 中實作,
相關閱讀
CSDN認證博客專家
C++
Python
Linux
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/258653.html
標籤:AI
下一篇:JAVA高級之執行緒死鎖問題
