如何在快速项目中使用`-fsanitize-coverage = trace-pc-guard`?

问题描述 投票:1回答:1

在使用Objective-C语言的项目中,我在[[Other C Flags]中添加[C0:

-fsanitize-coverage=trace-pc-guard

然后我在项目中添加两个方法,如下所示:

enter image description here

所以我可以获得所需的信息。

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

enter image description here项目中,我也设置了swift。并在Other C Flags中添加-sanitize-coverage=func-sanitize=undefinedOther Swift Flags

但我收到一个错误:

enter image description here

Undefined symbol: ___sanitizer_cov_trace_pc_guard_init

如何解决此问题并获得enter image description here项目之类的信息。

ios objective-c swift lldb
1个回答
0
投票
只是一个猜测:我不认为“ Other Swift Flags”会传递给链接器调用-这将解释未定义的符号错误。尝试在链接器标志中添加“ -fsanitize = undefined”。
© www.soinside.com 2019 - 2024. All rights reserved.