3

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++ コードをコンパイルおよびリンクするための「すべてのルールをキャッチ」を設定する方法が見つかりませんでした。

私の質問は次のとおりです。

  • スペックファイルを使用してそれを行う方法の例はありますか?
  • それはそれを行うための最良のアプローチですか?
  • 他の代替アプローチはありますか?
4

1 に答える 1