gpt4 book ai didi

Eclipse 在调试时不显示 Perl 模块(使用 EPIC)

转载 作者:行者123 更新时间:2023-12-02 16:48:49 58 4
gpt4 key购买 nike

我正在使用在 Linux Ubuntu 上运行的 Eclipse GALILEO 和 EPIC 插件来运行/调试 Perl 代码,但在调试时遇到了一些问题。通常,当我进行逐步调试并遇到使用某个 Perl 模块的行时,我单击“Step Into”,然后正在查看模块文件,并且调试箭头也会迁移到那里。现在看来有些模块不遵循这种情况。相反,当我单击“步入”时,运行过程正在后台某处发生。我的意思是,我可以按“Step Over”,然后我将看到正在执行的代码的结果,但我看不到文件本身,也看不到箭头。

为了更清楚一点,请引用以下代码:

.
.
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.";
}
}
.
.

从开头到上图部分的代码可以找到here

我执行逐步调试,直到到达 $sys_manager->setup_from_name($sysname); 行。当我到达它时,我单击“Step Into”按钮(而不是“Step Over”)。然后我期望在 Eclipse 中再打开一个窗口,它将 View 切换到此 setup_from_name 方法所在的模块。然而,正如我之前提到的,“调试箭头”消失了。在此阶段,如果我单击“Step Over”按钮,则运行会在后台的某个位置继续(我可以看到变量正在被修改)。如果我单击“Step Return”,箭头会再次出现并继续执行可见代码。

我还想提一下,这些特定模块是按原样提供的,而不是使用 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

完整的错误消息可通过此link获得

也许这会透露一些光芒..

更新2有人建议我验证 Eclipse 项目属性中的“Perl Include Path”中是否存在相关模块路径。我已经这样做了,但遗憾的是没有任何更改。

最佳答案

为了让使用相对路径的库正常工作,我(再次)修补了 Cwd.pm...添加了 chomp。

<小时/>
sub fast_abs_path {
local $ENV{PWD} = $ENV{PWD} || ''; # Guard against clobberage
my $cwd = getcwd();
require File::Spec;
my $path = @_ ? shift : ($Curdir ||= File::Spec->curdir);

# Detaint else we'll explode in taint mode. This is safe because
# we're not doing anything dangerous with it
($path) = $path =~ /(.*)/s;
($cwd) = $cwd =~ /(.*)/s;

chomp($path); # <<<-- added this chomp here

unless (-e $path) {
<小时/>

EPIC 代码中可能有更好的修复,在调用 fast_abs_path 之前进行 chomp,但额外的 chomp 不会伤害任何东西......

-大卫

关于Eclipse 在调试时不显示 Perl 模块(使用 EPIC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9766129/

58 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com