gpt4 book ai didi

perl - mod_perl 调试和查看源代码

转载 作者:行者123 更新时间:2023-12-02 07:37:21 24 4
gpt4 key购买 nike

我最近开始从事一个使用 mod_perl 的项目。我正在尝试使用 Perl 调试器来调试在 mod_perl 下运行的一些 Perl 脚本。我使用以下命令启动调试器:

sudo OPTIONS="-X -DPERLDB" /etc/init.d/httpd restart

perl.conf(由httpd.conf包含)的相关调试部分是:

<IfDefine PERLDB>
<Perl>
use Apache::DB ();
Apache::DB->init;
</Perl>
<Location />
PerlFixupHandler Apache::DB
</Location>
</IfDefine>

这将我带入调试器。当我在浏览器中加载所需的页面时,调试器在 mod_perl 包装的 Perl 脚本的第一行处中断(应用程序正在使用 PerlRun,顺便说一句)。我现在可以单步执行代码、打印变量等等。

我的问题是查看源代码的命令(l-v)在Perl 脚本。它们在模块内按预期工作 - 也就是说,如果代码进入 Perl 脚本使用的模块,则查看源命令将工作。

这是 mod_perl 中调试的已知问题吗?我能做些什么来解决这个问题吗?

我在 CentOS 5.6 x86_64 上使用 Apache 2.2.3 和 Perl 5.8.8。

最佳答案

我以前遇到过这个问题,并对这个问题有一个有根据的猜测。我当前的工作理论是调试器不会显示 perl 解析的代码,因为 perl 已经在编译阶段将其丢弃。相反,调试器通过相对路径查找以从实际文件中获取源代码。但是,调试器开始从 Apache 服务器根目录查找,该根目录可能与启动 Apache 的位置不同。当它找不到文件时,它会显示为一堆空行。

关于perl - mod_perl 调试和查看源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7584931/

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