0

我对 EPIC 中的 Perl 调试器有一个奇怪的问题。当我开始使用它时,一切正常。我会设置断点,在调试模式下运行一个程序,单步执行它......然后,一定有什么改变了,但我不知道是什么。现在,调试器或 EPIC 或 Eclipse,我不知道是谁,将大量输出发送到控制台窗口,这些输出与我的程序无关,而是与 - 在我看来 - EPIC 或 Perl 调试器的内部结构有关。这是这个输出的一个小片段,有无穷无尽的数量,而我的程序想要输出的东西却丢失了。

这里有什么问题?我没有找到任何我可以在首选项中更改的设置,我不知道要搜索什么,我在 EPIC 文档中找不到任何内容。

编辑:我记得的一件事是我使用了“使用诊断”;在属于该项目的另一个程序中,但生成此调试输出的程序未运行或使用该程序。也许与此有关?它会“卡住”并被调试器记住吗?我知道这听起来很傻,但这就是我的全部。

  DB<396> ;{    
do 'dumpvar_epic.pm' unless defined &dumpvar_epic::dump_lexical_vars;

my $offset = 0;
my $savout = CORE::select($DB::OUT);
dumpvar_epic::dump_lexical_vars($offset);
CORE::select($savout);
};

12|$forceingest|1|1|17|SCALAR(0x40fb5a4)|3|'0'|1|3
4|$lll|1|2|14|REF(0x2739ff4)|37|Log::Log4perl::Logger=HASH(0x41bbe64)|3|...|1|3
9|$reingest|1|1|17|SCALAR(0x40fbf14)|3|'1'|1|3
13|$secondsPause|1|1|17|SCALAR(0x40fb774)|5|'300'|1|5
4|$tdh|1|2|14|REF(0x40ff0dc)|15|GLOB(0x42e7484)|3|...|1|3
12|$transferDir|1|1|17|SCALAR(0x40f9f24)|31|'c:/temp/xml/transfer/probleme'|2|31
8|$usedata|1|1|17|SCALAR(0x40fbf84)|3|'1'|1|3
6|%datah|1|1|15|HASH(0x40f2f8c)|3|...|1|3
5|@data|1|1|16|ARRAY(0x41002ec)|3|...|1|3
13|@transactions|1|1|16|ARRAY(0x40ff07c)|3|...|1|3
14|@transferFiles|1|1|16|ARRAY(0x40ff04c)|3|...|1|3
7|@tx_ref|1|1|16|ARRAY(0x40feffc)|3|...|1|3

  DB<397> ;{    
do 'dumpvar_epic.pm' unless defined &dumpvar_epic::dump_lexical_vars;

my $offset = 0;
my $varexpr = <<'EOT';
${$h->{'$lll'}}
EOT
my $subref = \&dumpvar_epic::dump_hash_expr;
my $savout = CORE::select($DB::OUT);
my $savbuf = $|;
$| = 0;
$subref->($offset, $varexpr);
$| = $savbuf;
print "";
CORE::select($savout);
};

3|ALL|1|2|14|REF(0x41d9f64)|15|CODE(0x41dbee4)|3|...|1|3
5|DEBUG|1|2|14|REF(0x41d9ba4)|15|CODE(0x41dbee4)|3|...|1|3
5|ERROR|1|2|14|REF(0x41d737c)|15|CODE(0x41d9b34)|3|...|1|3
5|FATAL|1|2|14|REF(0x41d735c)|15|CODE(0x41d9b34)|3|...|1|3
4|INFO|1|2|14|REF(0x41d748c)|15|CODE(0x41d9b34)|3|...|1|3
3|OFF|1|2|14|REF(0x41d9fe4)|15|CODE(0x41d9b34)|3|...|1|3
5|TRACE|1|2|14|REF(0x41d9ee4)|15|CODE(0x41dbee4)|3|...|1|3
4|WARN|1|2|14|REF(0x41d717c)|15|CODE(0x41d9b34)|3|...|1|3
10|additivity|1|1|17|SCALAR(0x41d52bc)|3|'1'|1|3
4

1 回答 1

0

没关系。在 Preferences/Perl EPIC/Enable Debugger Console 下确实有一个设置。我之前启用了该设置,因为调试器存在另一个奇怪的问题(线程不会再终止并挂在那里,直到 Eclipse 重新启动),这似乎有效。禁用它会停止不需要的输出。也许我的电脑上的 Perl/EPIC 真的很奇怪......

于 2015-08-27T13:15:58.270 回答