/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 編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。

  2. 選取 [ 組態屬性 > C/C++ > 一般 ] 屬性頁。

  3. 修改 [ 啟用位址清理器 ] 屬性。 若要啟用它,請選擇 [是] [/fsanitize=address]。

  4. 選擇 [確定 ] 或 [ 套用 ] 以儲存您的變更。

在 Visual Studio 開發環境中設定 /fsanitize=fuzzer 編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。

  2. 選取 [ 組態屬性 > C/C++ > 一般 ] 屬性頁。

  3. 修改 Enable Fuzzer 屬性。 若要啟用它,請選擇 [是] [/fsanitize=fuzzer]。

  4. 選擇 [確定 ] 或 [ 套用 ] 以儲存您的變更。

設定進階編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。

  2. 選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。

  3. 修改 [其他選項] 屬性,以設定 /fsanitize-address-use-after-return /fno-sanitize-address-vcasan-lib

  4. 選擇 [確定 ] 或 [ 套用 ] 以儲存您的變更。

若要以程式方式設定這個編譯器選項

另請參閱

MSVC 編譯器選項
MSVC 編譯器命令列語法
/INFERASANLIBS (使用推斷的清理工具程式庫)
/fsanitize-coverage (設定清理器涵蓋範圍)
AddressSanitizer 概觀
AddressSanitizer 已知問題
AddressSanitizer 組建和語言參考