В проекте с языком Objective- C я добавляю -fsanitize-coverage=trace-pc-guard
в Другое C Флаги :
Затем я добавляю в проект два метода, как показано ниже:
void __sanitizer_cov_trace_pc_guard_init(uint32_t *start, uint32_t *stop) {
static uint64_t N; // Counter for the guards.
if (start == stop || *start) return; // Initialize only once.
printf("INIT: %p %p\n", start, stop);
for (uint32_t *x = start; x < stop; x++)
*x = ++N; // Guards should start from 1.
}
void __sanitizer_cov_trace_pc_guard(uint32_t *guard) {
if (!*guard) return;
void *PC = __builtin_return_address(0);
char PcDescr[1024];
printf("guard: %p %x PC %s\n", guard, *guard, PcDescr);
}
, чтобы я мог получить информацию, которую хотел.
В swift
проекте я также установил Other C Flags
. И добавьте -sanitize-coverage=func
、 -sanitize=undefined
в Other Swift Flags
, но я получил ошибку:
Undefined symbol: ___sanitizer_cov_trace_pc_guard_init
Как мне решить эту проблему и получить такую информацию, как oc
project.