分享方式:


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