2010-02-16 4 views
14

Unfortunately, Devel::Cover does not yet work with threads.Devel :: cover를 mod_perl2에서 어떻게 실행할 수 있습니까?

프리 포크에서는 작동하지 않습니다. startup.pl에서

존재 use 'D, Devel::Cover 문제

Not a CODE reference. 
END failed--call queue aborted. 

펄 5.8.9, 아파치 2.2.13. 내 OS는 FreeBSD입니다. 같은 문제는 reported for win32입니다.

업데이트 : 여기에 악마의 출처는 Apache::DBI을 것으로 나타 PerlTrace all

copying config 
restarting apache 
mod_perl trace flags dump: 
a On (Apache API interaction) 
c On (configuration for directive handlers) 
d On (directive processing) 
e On (environment variables) 
f On (filters) 
g On (globals management) 
h On (handlers) 
i On (interpreter pool management) 
m On (memory allocations) 
o On (I/O) 
r On (Perl runtime interaction) 
s On (Perl sections) 
t On (benchmark-ish timings) 
modperl_cmd_requires: push PerlRequire /usr/local/www/apache22/data/startup.pl 
modperl_cmd_switches: arg = -I/usr/local/www/apache22/data/PMs 
modperl_cmd_switches: arg = -I/usr/local/www/apache22/data/project/lib_core 
modperl_cmd_modules: push PerlModule Apache::DBI 
modperl_config_dir_new: new dcfg: 0x284d3d48 
modperl_config_dir_create: dir \.(cgi|pl)$ 
modperl_cmd_response_handlers: push @PerlResponseHandler, ModPerl::Registry 
modperl_handler_new: [47836] new handler ModPerl::Registry 
modperl_cmd_push_handlers: created handler stack 
modperl_cmd_push_handlers: pushed handler: ModPerl::Registry 
modperl_cmd_options: arg = +ParseHeaders 
httpd not running, trying to start 
modperl_hook_init: mod_perl hook init 
modperl_sys_init: mod_perl sys init 
MpSrv flags dump (cdev01.project.local): 
Access On 
Authen On 
Authz On 
Autoload Off 
ChildExit On 
ChildInit On 
Cleanup On 
Clone Off 
Enable On 
Fixup On 
HeaderParser On 
InheritSwitches Off 
InputFilter On 
Log On 
MapToStorage On 
MergeHandlers Off 
OpenLogs On 
OutputFilter On 
Parent Off 
PostConfig On 
PostReadRequest On 
PreConnection On 
ProcessConnection On 
Response On 
Trans On 
Type On 
Unset On 
modperl_startup: starting the parent perl for the base server 
modperl_config_srv_argv_init => 
    0 = /usr/local/sbin/httpd 
    1 = -I/usr/local/www/apache22/data/PMs 
    2 = -I/usr/local/www/apache22/data/project/lib_core 
    3 = -e;0 
modperl_env_clear: [0x28f2a000] %ENV =(); 
modperl_env_default_populate: $ENV{MOD_PERL} = "mod_perl/2.0.4"; 
modperl_env_default_populate: $ENV{MOD_PERL_API_VERSION} = "2"; 
modperl_env_configure_server: [47836/0x28f2a000/cdev01.project.local:80] 
    @ENV{keys scfg->SetEnv} = values scfg->SetEnv; 
modperl_env_configure_server: [47836/0x28f2a000/cdev01.project.local:80] 
    @ENV{keys scfg->PassEnv} = values scfg->PassEnv; 
modperl_env_table_populate: $ENV{PATH} = "/usr/local/www/apache22/data/testing/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"; 
modperl_interp_init: server=cdev01.project.local:80 
modperl_interp_new: 0x28f47480/perl: 0x0/parent perl: 0x0 
modperl_startup: constructed interpreter=0x28f2a000 
modperl_handler_anon_init: init $PL_modglobal{ANONSUB} = [] 
Devel::Cover 0.65: Collecting coverage data for branch, condition, pod, statement, subroutine and time. 
    Collecting under mod_perl/2.0.4 
Selecting packages matching: 
Ignoring packages matching: 
    /Devel/Cover[./] 
    /Net/OpenSSH[./] 
Ignoring packages in: 
    . 
    /usr/local/lib/perl5/5.8.9 
    /usr/local/lib/perl5/5.8.9/BSDPAN 
    /usr/local/lib/perl5/5.8.9/mach 
    /usr/local/lib/perl5/site_perl/5.8.9 
    /usr/local/lib/perl5/site_perl/5.8.9/mach 
modperl_config_apply_PerlRequire: loaded Perl file: /usr/local/www/apache22/data/startup.pl for server cdev01.project.local:80 
modperl_config_apply_PerlModule: loaded Perl module Apache::DBI for server cdev01.project.local:80 
modperl_init_vhost: Init vhost cdev01.project.local:4443: s=0x284d8500, base_s=0x28413a40 
modperl_init_vhost: server cdev01.project.local:4443 already initialized 
modperl_init_vhost: Init vhost cdev01.project.local:443: s=0x284d5c78, base_s=0x28413a40 
modperl_init_vhost: server cdev01.project.local:443 already initialized 
modperl_callback_run_handlers: no PerlOpenLogsHandler handlers configured() 
modperl_callback_run_handlers: no PerlPostConfigHandler handlers configured() 
modperl_env_hash_keys: [0x28f2a000] PERL_HASH: MOD_PERL (len: 8) 
modperl_env_hash_keys: [0x28f2a000] PERL_HASH: MOD_PERL_API_VERSION (len: 20) 
modperl_init_clones: no clones created for non-threaded mpm 
modperl_interp_pool_destroy: parent == 0x28f47480 
modperl_interp_destroy: interp == 0x28f47480/perl: 0x28f2a000 
modperl_xs_dl_handles_get: B dl handle == 0x28ca9600 
modperl_xs_dl_handles_get: Cwd dl handle == 0x28ca9800 
modperl_xs_dl_handles_get: List::Util dl handle == 0x28ca9a00 
modperl_xs_dl_handles_get: Digest::MD5 dl handle == 0x28ca9c00 
modperl_xs_dl_handles_get: IO dl handle == 0x28ca9e00 
modperl_xs_dl_handles_get: Fcntl dl handle == 0x28caa000 
modperl_xs_dl_handles_get: Storable dl handle == 0x28caa200 
modperl_xs_dl_handles_get: File::Glob dl handle == 0x28caa400 
modperl_xs_dl_handles_get: Data::Dumper dl handle == 0x28caa600 
modperl_xs_dl_handles_get: Devel::Cover dl handle == 0x28caa800 
modperl_xs_dl_handles_get: Apache2::Module dl handle == 0x28caaa00 
modperl_xs_dl_handles_get: Apache2::RequestUtil dl handle == 0x28caac00 
modperl_xs_dl_handles_get: Apache2::ServerUtil dl handle == 0x28caae00 
modperl_xs_dl_handles_get: DBI dl handle == 0x28cac000 
modperl_perl_call_list: pid 47836/tid 0x28401040/perl id 0x28f2a000 running 4 END subs 
Not a CODE reference. 
END failed--call queue aborted. 
+0

할 수 있습니다'사용 진단 :(올 여기에 있습니다;? '및/또는 수 있도록'PerlTrace' 또한,'아파치 :: Reload'를 사용하는 경우 당신은 그것을 해제 시도 할 수 있습니다? – vladr

+0

'PerlTrace'를 활성화하고 로그 파일 출력을 추가했습니다 – codeholic

답변

2

의 출력입니다. 나는 그것을 설정 파일에서 주석 처리하고 httpd을 시작했다.

불행하게도, 많은 장애물 No coverage for runtime with Devel::Cover and ModPerl::Registry

+0

이 '대답'은 아마도 질문에 대한 편집 일 것입니다, –

+1

@Jonathan 저는 그렇게 생각하지 않습니다. CODE reference ""Devel Cover "''아파치 :: DBI '가 아니었다면 내 문제가 아니라, 답이 없다는 것을 알았을 것입니다. 'mod_perl'을위한 또 다른 모듈 – codeholic

+0

당신은 당신 자신의 대답을 받아 들여야 만하는 여전히 '대답하지 못했습니다'. – xenoterracide