Linux ディストリビューション全体をデバッグおよびファジングできるようにするには、ASAN (AddressSanitizer、https://en.wikipedia.org/wiki/AddressSanitizer ) を gcc のデフォルト オプションとして設定します。したがって、通常、私が望むものを達成するために、通常、Linux パッケージをコンパイルする前に次の変数を設定します。
CFLAGS="-fsanitize=address,undefined -Wformat -Werror=format-security -Werror=array-bounds -g"
CXXFLAGS="-fsanitize=address,undefined -Wformat -Werror=format-security -Werror=array-bounds -g"
LDFLAGS="-fsanitize=address,undefined"
私のコードをコンパイルして実行してみてください。デフォルトをgccにしたいと思います。
それを行う 1 つのオプションは、スペック ファイルを使用することです: https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html。しかし、AddressSanitizer を使用してすべての C/C++ コードをコンパイルおよびリンクするための「すべてのルールをキャッチ」を設定する方法が見つかりませんでした。
私の質問は次のとおりです。
- スペックファイルを使用してそれを行う方法の例はありますか?
- それはそれを行うための最良のアプローチですか?
- 他の代替アプローチはありますか?