我正在尝试分析一个包含创造性命名模块的大型应用程序DB
。在没有任何额外的开关或相关的环境变量的情况下运行-d:NYTProf
并调用之后,我得到了带有 HTML 输出的常用目录。但是,由于某些内部逻辑,与我的模块相关的任何输出似乎都受到严重破坏。只是为了确定,是纯 Perl。nytprofhtml
nytprof
DB
DB
- 顶部和所有子程序列表:当其他函数链接指向相关
-pm-NN-line.html
文件时,链接到从DB
点到入口脚本的子程序。 - “源代码文件”部分中的“行”链接确实指向
DB-pm-NN-line.html
并且确实存在,但与所有其他文件不同,它内部没有“语句”表,“行”表绝对没有代码行,只有调用摘要.
实际上,这里有一个小例子:
# main.pl
use lib '.';
use DB;
for (1..10) {
print DB::do_stuff();
}
# DB.pm
package DB;
sub do_stuff {
my $a = 1;
my $b = 2;
my $c = $a + $b;
return $c;
}
1;
尝试运行perl -d:NYTProf main.pl
,然后nytprofhtml
再检查nytprof/DB-pm-8-line.html
。
我不知道是否会发生这种情况,因为 NYTProf 本身具有命名的内部模块DB
,或者它以某种神奇的方式处理以 DB 开头的模块 - 我注意到函数的输出DBI
看起来也有些不同。
DB
除了重命名我的模块,有没有办法改变/禁用这种行为?