/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 は、ユーザー指定の入力によって発生するバグやクラッシュを見つけるために使用できる、カバレッジ ガイド付きファジー テスト ライブラリです。 /fsanitize=address
を LibFuzzer と共に使用することをお勧めします。 このオプションは、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++]>[全般] プロパティ ページを選択します。
[Address Sanitizer を有効にする] プロパティを変更します。 有効にするには、[はい] (/fsanitize=address) を選びます。
[OK] または [適用] を選択して、変更内容を保存します。
Visual Studio 開発環境で /fsanitize=fuzzer
コンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。
[構成プロパティ]>[C/C++]>[全般] プロパティ ページを選択します。
[Enable Fuzzer]\(ファザーを有効にする\) プロパティを変更します。 有効にするには、[はい] (/fsanitize=fuzzer) を選びます。
[OK] または [適用] を選択して、変更内容を保存します。
高度なコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。
[構成プロパティ]>[C/C++]>[コマンド ライン] プロパティ ページを選択します。
[追加のオプション] プロパティを変更して、/fsanitize-address-use-after-return または /fno-sanitize-address-vcasan-lib を設定します。
[OK] または [適用] を選択して、変更内容を保存します。
このコンパイラ オプションをコードから設定するには
- 以下を参照してください。AdditionalOptions
関連項目
MSVC コンパイラ オプション
MSVC コンパイラのコマンド ライン構文
/INFERASANLIBS
(推定サニタイザー ライブラリの使用)
/fsanitize-coverage
(サニタイザー カバレッジを構成する)
AddressSanitizer の概要
AddressSanitizer の既知の問題
AddressSanitizer のビルドと言語リファレンス