問題タブ [sanitizer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clang - LLVM DataFlow Sanitizer を使用して関数をラップする
Clang DataFlowSanitizerを使用しようとしています。たとえば、例のようにカスタム関数ラッパーを定義したいのですが、memcpy をラップし、何かを実行してから元の memcpy を呼び出したいと思います。次のスキーマに従う必要があります。
ドキュメントでは、カスタム ABI リストを定義し、カスタム関数を次のように配置する必要があることが示されています。
しかし、この ABI リストを使用するようにコンパイラに指示するにはどうすればよいでしょうか? ラッパー関数はどこに置くべきですか?
c++ - 他のサニタイザーを有効にして使用すると、LLVM のリークサニタイザーが機能しない理由
単純なプログラムからメモリリークを見つけようとしていました:
次のコマンドを使用します。
clang -g -O0 -Wall -Wextra -std=gnu99 -fsanitize=address,leak -o 3-bracket-parser 3-bracket-parser.c
このプログラムでは、close_bracket == NULL
が true の場合、プログラムは free mutable_copy なしで戻るため、メモリ リークが発生することは明らかです。
ただし、このコマンドを実行すると、エラーは報告されず、サニタイザーからの出力もありません。リークサニタイザーのみを有効にして再試行しましたが、今回は機能します。
他のサニタイザーが有効になっているのに、リークサニタイザーが機能しないのはなぜだろうと思っていました。
私のclangのバージョンはHomebrewのclangバージョン12.0.1で、私のOSはmacOS Big Sur 11.5.2です
googletest - Address Sanitizer - gtest の抑制
単体テスト機能を抑制することは可能ですか? プロジェクトにアドレスサニタイザーがあり、抑制したいスタックバッファオーバーフローに関する情報を含むレポートを取得しています。
ここで同様の問題を抱えているスタックオーバーフローページはすでに1つありますが、この質問の解決策は私が望んでいるものではありません(テストを無効にしたくありません)。
例えば
このテストではアドレス サニタイザーを使用したくありません。テストを実行する必要がありますが、アドレス サニタイザー レポートは必要ありません