-1

重複の可能性:
gdb で「共有オブジェクト ファイルを開けません」と表示される

この無料プログラムは、[procps パッケージ]: http://procps.sourceforge.net/procps-3.2.8.tar.gzが提供するコマンドの一部です。

を設定LD_LIBRARY_PATH=/home/hugemeow/workspace/linuxc/packages/procps-3.2.8/procしたので、この無料のコマンドを eshell でデバッグできます。

Mx shell
gdb free
br main
r
// the debug works well here

しかし、emacs の gdb モードでデバッグしようとすると、このプログラムのデバッグに失敗します。

私が打ったとき

r
Enter

エラーが表示されるだけで"error while loading shared libraries: libproc-3.2.8.so"emacs の gdb モードで free コマンドのデバッグに失敗しました

しかし、私は setupLD_LIBRARY_PATHを持っていて、eshell でうまく動作するので、free コマンドのデバッグに失敗した理由は何ですか? また、emacs の gdb モードで無料のコマンドをデバッグするにはどうすればよいですか?

4

1 に答える 1

1

共有ライブラリのロード中にエラーが発生しました:libproc-3.2.8.so

GDBが停止しなかった理由は、実行されなかっmainたためです。プログラムをロードする必要があり、動的リンカー(プログラムmainのロードを担当)がプログラムを見つけることができませんでした。したがって、動的ローダーは、プログラムの最初の命令が実行される前にプログラムを終了しました。freelibproc-3.2.8.so

ダイナミックローダーが必要なライブラリを見つけることができるように環境を設定する必要があります。最も簡単な方法は、システムに適切にインストールすることです。少し難しい方法は、それを介して見つかるように設定することです。例えば:libproc-3.2.8.soLD_LIBRARY_PATHlibproc-3.2.8.so

(gdb) set env LD_LIBRARY_PATH /path/to/libproc/lib
(gdb) run

LD_LIBRARY_PATHを設定しました

起動後に上記で実行したemacsか、設定されたシェルから呼び出すのではなくemacs、メニューまたはアプリケーションランチャーを介して起動した可能性があります。環境変数は、環境変数が設定される前に開始されたプロセス、または別のシェルから開始されたプロセスによって継承されません。LD_LIBRARY_PATH

于 2012-08-14T06:20:07.593 に答える