/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 組建和語言參考