#clang #sanitizer
Вопрос:
Я пытаюсь использовать 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? Куда мне следует поместить функцию обертки?