/fsanitize
(啟用消毒器)
/fsanitize
使用編譯器選項來啟用清理程式。
語法
/fsanitize=address
/fsanitize=fuzzer
/fsanitize-address-use-after-return
/fno-sanitize-address-vcasan-lib
備註
編譯 /fsanitize=address
程式選項可讓 AddressSanitizer 成為強大的編譯器和執行時間技術,以找出 難以尋找的錯誤 。 /fsanitize=address
從 Visual Studio 2019 16.9 版開始,即可支援此選項。
編譯 /fsanitize=fuzzer
程式選項可啟用 LibFuzzer 的 實驗性支援。 LibFuzzer 是涵蓋範圍引導的模糊程式庫,可用來尋找使用者提供輸入所造成的 Bug 和當機。 建議您搭配 LibFuzzer 使用 /fsanitize=address
。 此選項適用于模糊工具,例如 OneFuzz。 如需詳細資訊,請參閱 OneFuzz 檔和 OneFuzz GitHub 專案 。 /fsanitize=fuzzer
從 Visual Studio 2022 17.0 版開始,即可支援此選項。
選項 /fsanitize
不允許以逗號分隔的語法,例如: /fsanitize=address,fuzzer
。 必須個別指定這些選項。
/fsanitize-address-use-after-return
和 /fno-sanitize-address-vcasan-lib
編譯器選項,以及 /INFERASANLIBS
[使用推斷的清理工具程式庫] 和 /INFERASANLIBS:NO
連結器選項,可支援進階使用者。 如需詳細資訊,請參閱 AddressSanitizer 組建和語言參考 。
在 Visual Studio 開發環境中設定 /fsanitize=address
編譯器選項
開啟專案的 [屬性頁] 對話方塊。
選取 [ 組態屬性 > C/C++ > 一般 ] 屬性頁。
修改 [ 啟用位址清理器 ] 屬性。 若要啟用它,請選擇 [是] [/fsanitize=address]。
選擇 [確定 ] 或 [ 套用 ] 以儲存您的變更。
在 Visual Studio 開發環境中設定 /fsanitize=fuzzer
編譯器選項
開啟專案的 [屬性頁] 對話方塊。
選取 [ 組態屬性 > C/C++ > 一般 ] 屬性頁。
修改 Enable Fuzzer 屬性。 若要啟用它,請選擇 [是] [/fsanitize=fuzzer]。
選擇 [確定 ] 或 [ 套用 ] 以儲存您的變更。
設定進階編譯器選項
開啟專案的 [屬性頁] 對話方塊。
選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。
修改 [其他選項] 屬性,以設定 /fsanitize-address-use-after-return 或 /fno-sanitize-address-vcasan-lib 。
選擇 [確定 ] 或 [ 套用 ] 以儲存您的變更。
若要以程式方式設定這個編譯器選項
- 請參閱 AdditionalOptions。
另請參閱
MSVC 編譯器選項
MSVC 編譯器命令列語法
/INFERASANLIBS
(使用推斷的清理工具程式庫)
/fsanitize-coverage
(設定清理器涵蓋範圍)
AddressSanitizer 概觀
AddressSanitizer 已知問題
AddressSanitizer 組建和語言參考
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應