7

いくつかの作業で Eclipse+PyDev ペアを試しています。(Eclipse v3.5.0 + PyDev v1.5.6) すべての変数を PyDev コンソールに公開する方法が見つかりませんでした (PyDev コンソール -> 現在アクティブなエディターのコンソール オプションを使用) 簡単なコードを使用して問題を説明します. コードを段階的に実行すると、コンソールから "x" 変数にアクセスできません。変数タブに表示されますが、それは私が本当に望んでいるものではありません。

どんな助けでも大歓迎です。

より良い説明については、私のスクリーンショットを参照してください。

代替テキスト

編集:

次のような単純な関数を追加するとします。

def myfunc(x):
    return x**x

コードに関数を追加してデバッグすると、コンソールから myfunc に簡単にアクセスできます。(myfunc と入力すると、この自動実行後に使用可能になります。

>>> from part2.test import myfunc
>>> myfunc

次に myfunc(5) を実行すると、Python インタープリターと同じように動作します。私のコードをデバッグするために、同様の方法で変数にアクセスすることは非常に便利です。大きな配列があり、デバッグ プロセス中にさまざまなテストと操作を行います。同様に: x を取得して x.sum() を実行し、後で x[::10] を実行するか、他の配列を操作して転置し、結果を観察し、実験などを行います...

より良い解決策があることを願っています。

4

2 に答える 2

8

アップデート:

最新の PyDev バージョンでは、スタック内のフレームを右クリックし、[PyDev] > [デバッグ コンソール] を選択して、デバッグ セッション中にコンテキストに関連付けられたより多くの機能を備えた対話型コンソールを作成できます。


残念ながら、実際の対話型コンソール (コード補完などを使用してコードを操作するのに適した方法)は、現在、デバッグ セッションに接続されていません (これは計画されていますが、まだ実装されていません)。

それでも、「より単純な」コンソールが利用可能であるため、ブレークポイント スコープで利用可能な変数をインタラクティブに調べて操作することができます: http://pydev.org/manual_adv_debug_console.html (これは、 pdb -- ブレークポイントに到達した後、使用可能なコンソールにコードを入力するだけです)。

乾杯、

ファビオ

于 2010-04-29T17:16:18.497 に答える
2

この種の探索的デバッグには、バッテリーに含まれるデバッガーである pdb を使用するのが好きです。PyDev 内で使用したことがないため、すべてがどのように適合するかはわかりません。私の推測では、それはあなたが期待することをするでしょう。使用例:

import pdb

def myfunc(x):
    pdb.set_trace()
    return x**x

これは、return ステートメントを実行する直前に中断され、完全な Pythonic ステートメントを使用して何が起こっているかを把握できます。私はこれをインタラクティブな print ステートメントのように使用します。飛び込みたい場所を設定し、値を調べて結果を計算し、それが起こるのを確認します。おそらくこれは怠惰なデバッグ方法ですが、怠惰な決定を下す前に、より多くの情報が必要になる場合があります:-)

私が通常参照するページはPython Conquers The Universeで、他のいくつかの情報源にもリンクしています。

于 2010-04-28T16:07:05.607 に答える