同じオブジェクトファイルの異なるバージョンを同じプロセスで読み込むと、libxprof が失敗する
この現象が発生するのは、 1 つのディレクトリ内に同じ名前で作成されたバージョンの異なる 2 つの同一ファイルがそれぞれ別々の共有ライブラリにリンクされ、それらがおそらく別々のタイミングで同じプロセスに読み込されたときです。
回避策: -xprofile で共有ライブラリを作成するときは、オブジェクトファイル名が異なる UNIX パス名になるようにします。パス名はベース名がない場合であっても区別できるようにしてください。たとえば、次を見てください。
/work/mylib/unshared/x.o /work/mylib/shared/x.o |
これらは異なるものとみなされます。
OMP: libxprof: 表明が失敗する
プロファイリング実行時ルーチンの呼び出しの間に malloc() が失敗した場合、メモリーが不足している状況では、表明が失敗する場合があります。
回避策: メモリーまたはスワップ空間を追加します。
-xprofile=tcov:prof_dir が相対 prof_dir を誤って解決する
—xprofile=tcov:dir では、絶対パスではない UNIX のパス名は、オブジェクトファイルが生成されるディレクトリを基準にして解決されます。
回避策: —xprofile={ collect,use,tcov}: dir では絶対パス名を使用します。