Ios 如何在swift项目中使用`-fsanizize coverage=trace pc guard`?

Ios 如何在swift项目中使用`-fsanizize coverage=trace pc guard`?,ios,objective-c,swift,lldb,Ios,Objective C,Swift,Lldb,在语言为Objective-C的项目中,我在其他C标志中添加了-fsanizize coverage=trace pc guard: 然后我在project中添加了两种方法,如下所示: 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)

在语言为Objective-C的项目中,我在其他C标志中添加了
-fsanizize coverage=trace pc guard

然后我在project中添加了两种方法,如下所示:

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);
}


我如何解决这个问题并获得类似于
oc
project的信息。

只是一个猜测:我不认为“其他Swift标志”会传递给链接器调用——这可以解释未定义符号错误。尝试将“-fsanize=undefined”添加到链接器标志中


另一个猜测:如果要在ObjC项目的链接器标志中传递“-fsanitize=undefined”,那么可能不需要为uu sanitizer\u cov*.

提供自己的定义,只是一个猜测:我不认为“其他Swift标志”会传递给链接器调用——这可以解释未定义的符号错误。尝试将“-fsanize=undefined”添加到链接器标志中

另一个猜测是:如果您要在ObjC项目的链接器标志中通过“-fsanitize=undefined”,您可能不需要提供自己的定义,因为uuu sanitizer\u cov.*

启发了我很多。这给了我很多启发。
Undefined symbol: ___sanitizer_cov_trace_pc_guard_init