10

gdb 7.8Linux を実行しているサーバー マシンのホーム ディレクトリにあるソースからコンパイルしました。以前は を使用していましたが、それ自体の安定性の問題 (アップグレードの理由)gdb 7.6を除けば、すべて正常に動作しました。gdb

のアップグレード以降、gdb実行するcgdb 0.6.7とすぐに次のメッセージが表示されます。

Python Exception <type 'exceptions.ImportError'> No module named gdb:

warning:
Could not load the Python gdb module from `/home/username/bin/gdb//python'.
Limited Python support is available from the _gdb module.
Suggest passing --data-directory=/path/to/gdb/data-directory.

を構築したときはgdb、 を使用し./configure --with-pythonました。

プログラムを実行cgdbして segfault に到達するとbacktrace、次のメッセージを入力して取得します。

Python 例外 gdb.frames という名前のモジュールがありません:

そのため、Python のサポートなしでは実質的にgdb/を使用できないようです。cgdbこれを解決するにはどうすればよいですか?

FWIW; は使わずpython、普段は と書いていc++ます。

4

4 に答える 4

17

" " の値を指定する必要があります--data-directory。たとえばgdb、ビルド ディレクトリからロードする場合、コマンドは次のようになります。

./gdb -data-directory ./data-directory

次に、モジュールgdbの場所を知ることができpythonます。

このディスカッションを参照できます。

于 2014-09-01T08:21:56.697 に答える
0

上記の応答を完了するためだけに:

おそらく、実行可能なgdbを にコピーしました (これは、デフォルトの Ubuntu のgdbを台無しにするのを防ぎながら、デフォルトのシェルgdb/usr/local/binとしてインストールした最新の gdb を優先する私の方法です)。次に、 data-directory パラメータを元の場所からコピーした場所に渡す必要があることを考慮する必要があります。つまり、次のようになります。/usr/local/bin

/usr/local/bin/gdb --data-directory=/path_to_fully_installed_gdb_folder/data-directory

PS:Ubuntu 16.04のgdb-8.1でこれを行いました

于 2018-06-02T02:36:46.557 に答える