競技プログラミングをするのに,WSL の Ubuntu 22.04 LTS で,g++ 13.1 を使用しています.メモリ関係のバグを報告してもらうために,次のオプションを付けてコンパイルしています.
-fsanitize=address,undefined -fno-sanitize-recover -fno-omit-frame-pointer
最近,このように作成した a.out が,数回に一回くらい,ランダムにエラーを起こすようになりました.以下のエラーメッセージをはき出す無限ループに陥ります.
AddressSanitizer:DEADLYSIGNAL
検索をしてバグ報告を見つけ,そこに書かれていた,次の workaround を実施したところ,エラーは発生しなくなりました.
sudo sysctl vm.mmap_rnd_bits=28
ChatGPTに教えてもらって,/etc/sysctl.d/99-asan.conf というファイルを作り,vm.mmap_rnd_bits=28 を記述して,起動時から有効にするようにしました.一応エラーなく動いているようです.