私はClang & MemorySanitizerを使用しており、インラインアセンブリーのために誤検知が多少あります。 インラインアセンブリコードは、後で使用されるメモリを初期化しますが、MemorySanitizerはこれを初期化されていない値の使用とみなします。GDBでは、Clang&MemorySanitizerを使用して、エラーを引き起こすアドレスを取得する方法はありますか?
偽陽性をフィルタリングするための小さなGDBスクリプトを作成しようとしています。 MemorySanitizerとbailsにエラーを出力する関数である__msan_warning_noreturnにブレークポイントを設定します。しかし、私はエラーをトリガするアドレスを取得する簡単な方法を見つけることができませんでした。
エラーを引き起こすアドレスはどのようにして見つけることができますか?
私は、x64アーキテクチャ上でLinuxを働いて、打ち鳴らす-3.8
ありがとうございました。
ありがとうございました。 GDBで 私はコードを初期化するのasm命令のアドレスを発見し、このブレークポイントを作成しました: サイレント コール__msan_unpoisonコマンド 'ブレーク*アドレス($のRSIを、8) は end'を続けます –