我最近在 Linux 上推出了一个新的工具链,带有 gcc 4.5.0 和带有黄金的 binutils 2.20。现在我对PGO这个新事物很好奇。虽然很清楚它如何与可执行文件一起使用,但我无法在共享库上找到答案。我通过 google 在 gcc 邮件列表中找到了两个未答复的帖子,仅此而已。
所以这就是我尝试过的:只要我不标记 -fprofile-generate 一切都很好,并且我的 .so 由主程序 dlopen()'ed 并且可以完美地工作。当编译并与 -fprofile-generate 链接时,库被加载,一切正常,但是当我结束主程序时,我得到一个带有 coredump 的 sigsegv。
我将 corefile 提供给 gdb 并得到了这个:
#0 0x00000000 in ?? ()
No symbol table info available.
#1 0x1f32bc2f in ?? ()
No symbol table info available.
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
当然,没有 .cdda 文件被保存。
有任何想法吗?
菲利普