通常、collect コマンドではターゲットのアドレス空間に含まれているすべての共有オブジェクトのデータが、初期ライブラリリストに含まれているものか、dlopen() によって明示的に読み込まれたものかにかかわらず、収集されます。ただし、特定の条件では一部の共有オブジェクトのプロファイリングが行われないことがあります。
遅延読み込みにより指定プログラムが呼び出された場合。この場合、起動時にはライブラリが読み込まれず、dlopen() の呼び出しによって明示的にも読み込まれないため、共有オブジェクトは実験に含まれず、共有されたオブジェクトからの PC はすべて <Unknown> 関数にマップされます。対策として、環境変数 LD_BIND_NOW を設定すると、起動時にライブラリが強制的に読み込まれます。
実行可能ファイルが -B オプションを指定して構築された場合。この場合、そのオブジェクトは、dlopen() の動的リンカーエントリポイントに固有の呼び出しによって読み込まれ、libcollector 割り込みはバイパスされます。共有オブジェクト名は実験には含まれず、共有されたオブジェクトからの PC はすべて <Unknown>() 関数にマップされます。対策は、-B オプションを使用しないことです。