15

gdbを使用してマルチスレッドアプリケーションをデバッグしていますが、gdbでプログラムを起動すると、次の警告が表示されます。

警告:下位のスレッドライブラリに一致するlibthread_dbが見つかりません。スレッドのデバッグは利用できません。

まだデバッグできますが、メインスレッド以外はデバッグできません。libthread-db1およびglibc-dbgパッケージのインストールを提案するフォーラムを読みましたが、これで問題が修正されるわけではありません。

私のマシンには、、、、の3つのファイルが/lib/libthread_db.so.1あり/lib/.debug/libthread_db-1.0.soます/lib/libthread_db-1.0.so。あるときはファイルを指して、別のときはファイルを指す/libという名前でシンボリックリンクを作成してみました。また、運が悪かったのですが、を指すシンボリックリンクを作成しました。libthread_db.so/lib/libthread_db.so.1/lib/libthread_db-1.0.so/lib/.debug/libthread_db.so/lib/.debug/libthread_db-1.0.so

gdbで、に設定libthread-db-search-pathしてみました/lib(シンボリックリンクを一度、に設定し、一度にに設定しlibthread_db.so.1libthread_db-1.0.soまたに設定し/lib/.debugます。

助言がありますか?BeagleBoard-xmにAngstromLinuxv2.6.39を使用しています。

4

2 に答える 2

8

警告:下位のスレッド ライブラリに一致する libthread_db が見つかりません

これは、あなたのがあなたの/lib/libthread_db.so.1と一致しないことを意味します/lib/libpthread.so.0。このような不一致は、異なるバージョンのlibclibthread_dbパッケージをインストールしたり、パッケージ管理システムの外部でいずれかを更新したりした結果である可能性があります。パッケージのエラーの可能性もあります (つまり、パッケージが正しくビルドされていない可能性があります)。

無視 してください/lib/.debug/*-- それは探しているライブラリではありません。

于 2012-07-21T03:16:56.607 に答える
6

あなたは使用しようとして正しいです

set libthread-db-search-path [path]

ただし、使用している pthreads ライブラリと互換性のある libthread_db のバージョンをまだ指していないようです。

まず、ldd を使用してリンクしている pthread ライブラリを確認します。

ldd your_executable

次に、libthread-db-search-path が、取得している libpthread と互換性のあるバージョンの libthread_db がある場所を指していることを確認してください。ダイナミック リンカー パスが、予想とは異なる pthread ライブラリを取得している可能性があります。

于 2012-08-02T21:48:54.833 に答える