工具/软件:
您好:
我正在使用 CCS v10.4 并使用 CGT 20.2.3.LTS 编译器编译 C 工程。
- 我使用
--gen_profile_info生成 pprofout.pdat 文件的选项编译 CCS 工程。 - 我使用 pdd2000.exe 实用程序将此文件与可执行文件 (.out) 一同处理、以生成 pprofout.prf 文件
- 我使用
--analyze=codecov、--analyze_only和将 pprofout.prf 传递到重建 CCS 项目--use_profile_info、后者会生成一组包含覆盖信息的 CSV 文件。
我注意到 CSV 文件中分析的输出有两个问题:
- 在每个 CSV 文件中、行都会重复(这类似于 CC1312R:代码覆盖分析复制的 csv 数据)。 没有什么大不了的,我可以忍受。
- 在其中一个 CSV 文件中、我注意到所有行都没有非零频率计数。 这是预期的、因为相应翻译单元中的任何功能都不由程序执行。
- 但为什么这个文件具体? 还有其他源文件不包含在此特定构建中调用的任何代码、但该工具不会为它们生成任何 CSV 文件!
- 此外、我可以在链接信息文件中看到、该翻译单元中定义的任何函数实际上都不会在链接时保留。 它们都不会最终进入可执行目标代码中。
我进一步调查了链接信息文件、发现奇怪的是、该翻译单元的目标文件中列出了几个部分、但它们都不是我直接编写的代码。 经过一些挖掘,事实证明,如果我的源代码的任何部分调用以下函数之一(可能还有其他函数):__isnanf,__isinff-然后链接器认为它们是翻译单元的一部分,实际上并不是调用它们的地方。
这是一个错误吗?
此致、
Pierre