3

LinuxUbuntuで実行されているEclipseGALILEOとEPICプラグインを使用してPerlコードを実行/デバッグしていますが、デバッグ中にいくつかの問題が発生しています。通常、段階的なデバッグを行って、特定のPerlモジュールが使用されている行に遭遇すると、[ステップイン]をクリックすると、モジュールファイルが表示され、デバッグ矢印もそこに移動します。現在、このシナリオに従わない特定のモジュールがあるようです。代わりに、[ステップイン]をクリックすると、実行中のプロセスがバックグラウンドで実行されています。「ステップオーバー」を押すと、実行中のコードの結果が表示されますが、ファイル自体も矢印も表示されません。

少し明確にするために、次のコードを参照してください。

.
.
if (defined($sysname) && $sysname)
{
$sys_manager->setup_from_name($sysname);
$pf_manager->setup_from_name($sysname);
} else {
die "You must give either a --system parameter or an alias name.";
       }
}
.
.

最初から上記の部分までのコードはここにあります

行に到達するまで、ステップバイステップのデバッグを実行し$sys_manager->setup_from_name($sysname);ます。そこに到達したら、(「ステップオーバー」ではなく)「ステップイン」ボタンをクリックします。setup_from_name次に、Eclipseでもう1つのウィンドウが開かれることを期待します。これにより、このメソッドが存在するモジュールにビューが切り替わります。ただし、前述したように、「デバッグ矢印」は消えます。この段階で「ステップオーバー」ボタンをクリックすると、バックグラウンドで実行が続行されます(変数が変更されていることがわかります)。「ステップリターン」をクリックすると、矢印が再び表示され、表示されているコードを続行します。

また、これらの特定のモジュールは現状のまま提供され、CPANを使用してインストールされていないことにも言及したいと思います。それらを使用しているコードに関連するパッケージの場所は次のとおりです。

folder A/    #General folder
  folder B/  #Where the scripts which use the above mentioned modules are located
  folder C/  #Where the modules are located

私の質問が十分に明確であることを願っていますが、そうでない場合はコメントしてください。明確にします。

更新 EPIC「デバッガコンソール(実験的)」を有効にしましたが、デバッグプロセス中に問題のあるモジュールに到達するとエラーが表示されるようです。残念ながら、このデバッガデータを読み取って理解することはできません。エラーは非常に長いメッセージであり、以下に部分的に貼り付けられています。

S00000003$^AS00000002''NS00000003$^DS000000010NS00000003$^ES0000001b'No such file or directory'NS00000003$^FS000000012NS00000003$^HS00000003256NS00000003$^LS00000003

完全なエラーメッセージは、このリンクから入手できます

多分これはいくらかの光をこぼすでしょう..

UPDATE 2 Eclipseのプロジェクトプロパティの「Perlインクルードパス」に関連するモジュールパスが存在することを確認するように提案されましたが、残念ながら変更はありません。

4

3 に答える 3

1

EPIC プラグインはそのモジュールを見つけることができないと思います。私はここで推測しています:

@INC を正しく設定しましたか?

http://www.epic-ide.org/guide/ch03s02.php

PadWalker モジュールをセットアップしましたか?

http://www.epic-ide.org/guide/ch02s09.php

PERLLIB/PERL5LIB 環境変数を設定/確認しましたか?

于 2012-03-21T14:46:03.710 に答える
0

この問題を解決する方法を理解したようです。最初の質問にリンクとして添付されたコードからわかるように、次の行があります。

use lib '..';

これは、コンパイル時の @INC の操作を簡素化するモジュールであり、デフォルト パス ( /usr/share/perl/5.10.1/) に配置されていない Perl モジュールを指します。何らかの理由で、これらのモジュールは実行できましたが、「ステップイン」できませんでした。モジュールの 1 つを ( /usr/share/perl/5.10.1/) パスにコピーすると、デバッグ中に「ステップ イン」を実行できました。

残っている唯一の問題は、配置されていないモジュールを/usr/share/perl/5.10.1/デバッグに完全に使用できるようにする方法です。しかし、これは追加の質問のトピックだと思います。

于 2012-04-08T10:22:06.027 に答える