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