私は自分のプロジェクトで使用-fsanitize=leak
し-fsanitize=address
ています。リークはメモリリークを見つけ(メモリを削除しない)、アドレスはメモリアクセスを絞り込んでいると思いました。しかし、アドレスは削除されていないメモリについても述べています。では、どのような目的-fsanitize=leak
が必要ですか?
メモリリークを見つけるために、ツールは、メモリを割り当てたすべての場所を調べ、それらにマークを付け、それらがいつ削除されたかを追跡し、プログラムの最後に削除されないままになっていないかどうかを確認する必要があります。
メモリ書き込みアクセス違反を見つけるために、ツールは(とりわけ)メモリを割り当てたすべての場所を調べ、それらにマークを付け、それらがいつ削除されたかを追跡する必要があります。これが必要なのは、割り当てが大きくなり、ワイルド書き込みを行っていることを検出するためにガードを配置できるためです。
したがって、基本的に、メモリリークを追跡するために必要な情報の90%は、サニタイザーに対処するために利用できます。したがって、それらも追跡することもできます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加