まず、この (およびその後の) エラー:
cc1.exe: error: unrecognized command line option "-fstrip-debug"
strip --strip-debug
GCC コマンドラインに etc を追加することによって発生します。それは明らかに偽物であり、あなたのグーグルが示唆したものではありません。(これらのエラーへの参照を削除するために質問をクリーンアップすることをお勧めします。これらは問題とは関係ありません。)
それが示唆した(またはすべきだった)ことは、を使用するstrip --strip-debug libpthread.so.0
代わりに使用してstrip libpthread.so.0
います。
これは、libpthread.so.0 が完全に削除されている場合、GDB がスレッドを処理できないためです。
デバッグ シンボルを削除することはできますが (strip --strip-debug libpthread.so.0
実際にそうです)、すべてのシンボルを削除することstrip libpthread.so.0
はお勧めできません (TM)。
あなたは (明らかに) 自分で を構築libpthread.so.0
していないので、それを削除する必要もありません。
ただし、ツールチェーンのプロバイダーがそれを台無しにしていないことを確認する必要があります。次のコマンドは を報告するべきではなく、実際には(定義されたシンボルとして)no symbols
一致するものを出力する必要があります。nptl_version
nm /path/to/target/libpthread.so.0 | grep nptl_version
これまでのところすべてが順調であると仮定すると、問題を診断できますが、...十分な情報を提供しなかったことを除いて;-(特に、GDBを実行すると、次のように出力されるはずusing /path/to/libthread_db.so.0
です.GDBコンソールを探す必要があるかもしれません. Eclipse で、またはコマンド ラインから GDB を実行する場合は、出力される内容を正確に確認できます。
libthread_db.so.0
(ホスト用) のバージョンがlipthread.so.0
(ターゲット用)のバージョンと一致することが重要です。どちらもツールチェーン ベンダーから提供される必要があります。
あなたの問題は、GDBがまったく見つからないかlibthread_db.so.0
、間違ったものを見つけた可能性が最も高いです。