2016-08-09 18 views
3

Linux tutnix 3.13.0-30-generiC#54-Ubuntu i686 i686 GNU/LinuxでXサーバを使用しています。GDB:共有ライブラリのリモートロード中にエラーが発生しました

Xサーバでは、私はrootを変更するためにschrootを使用しています。その後、私は自分のアプリケーションを実行します。

Ubuntuマシン上のgdb(バージョン7.7)のXサーバー(ローカルマシンまたはXサーバーが存在するマシン)でgdbserver(バージョン6.7.1)を実行しようとしています。実行していますが、動作しません。

これは私がこれまで試したものです: -

リモートマシン上でコマンドの下で実行
    • MY_Application &
    • gdbserverをlocalhostを:8888
  1. をPROCESS_ID --attach
  2. ローカル・マシーン上で以下のコマンドを実行INE

    • GDB ./MY_Application
    • (GDB)は、リモートターゲット:ローカルマシンGDBに今8888

を限り

Could not load shared library symbols for 20 libraries, e.g. /usr/lib/libqt.so.3. Use the "info sharedlibrary" command to see the complete listing. Do you need "set solib-search-path" or "set sysroot"?

このメッセージが表示されていますそれを理解すると、gdbは共有ライブラリを読み込むことができず、20個あります。この結果、私はこれらの共有ライブラリに存在するシンボルを見つけることができません。

私は gdbsymbol-fileコマンドを使用して、ローカルマシン上のライブラリファイルからシンボルをロードしようとしたが、それはだから私は

  • (GDB)はSYSROOTリモートを設定し、以下のコマンドを使用

    のミスマッチに対処するために導きます。/

が、再びエラーメッセージ

を示しています

誰でも私がここで間違っていると教えてもらえますか?共有ライブラリからシンボルを読み込む別の解決策がある場合は、提案してください。

P.S.両方のMY_Applicationバイナリは同じです。

答えて

1

最後に私の問題の解決策を見つけました。 上記の手順2で問題が発生しました。どうやらgdbは共有ライブラリにすべてのシンボルとPATHをロードしていませんでした。 lddコマンドで表示されたPATHは正確でしたが。しかし、それでも私は単に私が働いていないのですgdb ./MY_Application 私はこの後にもう一つのコマンドを実行しました。

file MY_Application

も、この後/usr/local/davis/lib//srv/chroot/loc/usr/local/davis/lib/からライブラリファイルをコピーした私は、リモートサーバーに接続し、今では正常に動作しています。

関連する問題