LeakSanitizer

せっかく設定してみたが、エラーレポートが分かりにくいので、メモリ・リーク・チェックにはValgrindを使っていくことにする。

ただし、LeakSanitizerの実行が速いのは捨てがたい。切り替えて使うのは考慮したいと思ったが、g++とclang++を切り替えるだけでも大変そうだ。

 


 

やってみた。ソースコードは同一。コンパイル・オプション、オブジェクトファイルは別物で、実行ファイルをビルドできるようにした。LeakSanitizerは解析コードを埋め込んでいるため、そのまま実行するだけで解析可能というか、解析専用の実行コードとなっている。

一方、Valgrindは実行環境なので、普通にビルドした実行ファイルをValgrind上で動作させるだけ。

LeakSanitizer用にコンパイルした実行ファイルをValgrind上で実行してみたら、LeakSanitizerがメモリスキャンしているところにエラーが出たw

前の記事:【C++20】char8_tの使い方 次の記事:cppcheck、解決

コメントする