翻譯|使用教程|編輯:董玉霞|2022-06-17 10:49:14.253|閱讀 1859 次
概述:本文介紹了在 CLion中利用Sanitizer進行編譯器檢測配置項目的相關教程內容。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
動態代碼分析是一種在應用程序執行期間分析應用程序的方法。這種方法有助于暴露只能在運行時發現的漏洞和錯誤,例如內存泄漏、未初始化的訪問、并發問題、未定義的行為情況等等。
使用動態分析時,請記住:
對于動態代碼分析, CLion集成了Valgrind Memcheck、Google Sanitizers、CPU Profiler和Code Coverage工具,為它們提供可視化輸出和方便的功能,幫助您處理結果。
Sanitizers是由 Google 設計的用于動態代碼分析的開源工具。CLion 與以下 Sanitizer 集成:
由于Sanitizers基于編譯器檢測,您需要重新構建項目才能開始使用這些工具。
用于[sanitizer_name]以下其中一項:
[Additional_flags]是其他編譯標志,例如-fno-omit-frame-pointer, fsanitize-recover/fno-sanitize-recover,-fsanitize-blacklist等。
用于[-g]在警告消息中包含文件名和行號。
添加優化級別[-OX]以獲得合理的性能。
Sanitizers 的輸出可視化僅適用于 CMake 項目。對于 Makefile 和編譯數據庫,輸出以純文本形式記錄到控制臺。
在本節中,指定每個 Sanitizer 的運行時選項。您可以手動執行此操作,也可以單擊從現有環境變量中導入標志按鈕(如果存在變量,則此按鈕可用ASAN/MSAN/LSAN/TSAN_OPTIONS)。
將此復選框設置為具有預覽編輯器和幀信息的樹視圖輸出:
要使可視化輸出可用,請切換到至少 3.8.0 的 Clang 或至少 5.0.0 的 GCC
當清除此復選框或編譯器不符合要求時,sanitizers 輸出以純文本形式顯示:
注意PATH應該指向llvm-symbolizer的目錄(例如/usr /bin/),而*SAN_SYMBOLIZER_PATH應該指向特定的二進制文件(例如/usr /dir /llvm-symbolizer)。
如果使用 Clang 編譯器,如果PATH或*SAN_SYMBOLIZER_PATH變量都沒有指向llvm-symbolizer,您將收到來自 CLion 的通知:
以上就是在 CLion中利用Sanitizer進行編譯器檢測配置項目的相關教程內容,更多關于CLion使用教程的內容可進入官網查看。
CLion是一款專為開發C及C++所設計的跨平臺IDE。它是以IntelliJ為基礎設計的,包含了許多智能功能來提高開發人員的生產力。
CLion技術交流QQ群:786598704 歡迎進群一起討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn