私はgdb 7.1でARMシステムに取り組んでいます(7.5も試しました)。このツールを使用して、複数の共有ライブラリで構成されたアプリケーションをデバッグしています。
このアプリケーションを ARM 側でデバッグすると、gdb 7.1 を使用して、ロードされた共有ライブラリ (数字の「共有」) を確認できます。完全!
WindowsホストのgdbとARMのgdbserverで同じことをリモートで実行しようとしています。
だから私は持っています:1)arm v.7.4.1のWindows上のgdb(7.3.1も試しました)2)arm v.7.1のgdbserver(7.5も試しました)
Windowsでは、共有ライブラリを除いてすべてを問題なくデバッグできます。実際、「共有」を数字で入力しようとすると、ロードされた共有ライブラリがないと表示されます。少なくとも 1 つのライブラリがロードされていることは間違いありません (アーム側でも同じ状況で問題なく動作します)。
何か案が?
編集:おそらく私は何かを見つけました:
アーム上の gcc で、ロードされた共有ライブラリ (「共有」) を要求すると、solib を完全にサポートする関数 solib.c:info_sharedlibrary_command が呼び出されます。(そしてそれは正常に動作します)
代わりに、Windows の gdb とアームの gdbserver で同じコマンドを要求すると、solib を管理せず、dll のみを管理するコマンド「qXfer:libraries:read:」が渡されます。そして、dlls リストは明らかに空です。
私は何か見落としてますか?