LibFuzzer 中的 PC 和 PC 表是什么

What are PCs and PC tables in LibFuzzer

我想了解代码检测在 LibFuzzer 中的工作原理。 从 documentation,我知道我可以使用选项 -fsanitize-coverage.

选择不同类型的仪器

启动模糊器时,INFO 部分指示使用哪种检测(此处为 8 位计数器)

...
INFO: Loaded 1 modules   (46994 inline 8-bit counters): 46994 [0x978cc0, 0x984452),
INFO: Loaded 1 PC tables (46994 PCs): 46994 [0x861098,0x9189b8)
...

它还提到加载 PC 表的数量与总 PC 数量。 但是,我没有在任何地方找到 PC 在这种情况下的含义。 到目前为止,我的猜测是它的意思是“程序计数器”或“路径覆盖率”,但我还没有找到任何来源来证实它。

我的问题是: 在使用 LibFuzzer 进行代码检测的上下文中,“PC”是什么意思,是否有任何来源可以证实它?

在此上下文中,PC 表示 Program Counter,如 this blog post

中所述

In order to log coverage, the function trace_pc will log the program counter. With this information, the fuzzer knows, which paths are traversed on the given input values. Each fuzzing engine runs through this process differently.