Ios 如何在swift项目中使用`-fsanizize coverage=trace pc guard`?
在语言为Objective-C的项目中,我在其他C标志中添加了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)
-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