Clang DataFlowSanitizerを使用しようとしています。たとえば、例のようにカスタム関数ラッパーを定義したいのですが、memcpy をラップし、何かを実行してから元の memcpy を呼び出したいと思います。次のスキーマに従う必要があります。
void *__dfsw_memcpy(void *dest, const void *src, size_t n, dfsan_label dest_label, dfsan_label src_label, dfsan_label n_label, dfsan_label *ret_label){
//Some instructions
return memcpy(dest, src, n);
}
ドキュメントでは、カスタム ABI リストを定義し、カスタム関数を次のように配置する必要があることが示されています。
fun:memcpy=uninstrumented
fun:memcpy=custom
しかし、この ABI リストを使用するようにコンパイラに指示するにはどうすればよいでしょうか? ラッパー関数はどこに置くべきですか?