当指定标志-fprofile-generate
时,gcc是否定义了某种宏?基本上,我想在分析时禁用多线程 - 它似乎有办法破坏.gcda文件。
答案 0 :(得分:1)
这个悬而未决的问题很老,但我遇到了类似的问题,所以我希望这对某些人有用。
在使用多线程应用程序生成的配置文件信息时,应尝试启用-fprofile-correction
GCC编译器标志。根据相对于此旗帜的GCC documentation:
使用检测二进制文件为多线程程序收集的配置文件可能由于错过计数器更新而不一致。指定此选项后,GCC将使用启发式方法来纠正或消除此类不一致。默认情况下,GCC会在检测到不一致的配置文件时发出错误消息。
它将通过纠正由于多线程导致的不一致的配置文件值而消除指示.gcda文件已损坏的错误。