Subject: | Conflicts with ActiveState Komodo's remote debuggin |
I'm about to give a talk at YAPC10 on debugging Catalyst applications
with Komodo - please help me not look embarrassing :)
Here's how to reproduce the bug (at least on RHEL4):
0. Setup Komodo debugging:
a. unpack
http://downloads.activestate.com/Komodo/releases/5.1.3/remotedebugging/Komodo-PerlRemoteDebugging-5.1.3-28369-linux-x86.tar.gz
somewhere
b. export PERL5LIB=/path/to/where/you/unpacked/the/tgz
export PERLDB_OPTS="RemotePort=<IP of the Komodo machine>:9000"
(details at
http://dev.catalyst.perl.org/wiki/gettingstarted/howtos/debugging_catalyst_applications)
1. catalyst.pl Komodo
2. cd Komodo
2. $ perl -d -Ilib t/01app.t
1..2
[debug] Debug messages enabled
[debug] Statistics enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader 0.20
|
| Catalyst::Plugin::Static::Simple 0.20
|
'----------------------------------------------------------------------------'
[debug] Loaded dispatcher "Catalyst::Dispatcher"
[debug] Loaded engine "Catalyst::Engine::CGI"
[debug] Found home "/home/dandv/Komodo"
[debug] Loaded Config "/home/dandv/Komodo/komodo.conf"
[debug] Loaded components:
.-----------------------------------------------------------------+----------.
| Class | Type
|
+-----------------------------------------------------------------+----------+
| Komodo::Controller::Root |
instance |
'-----------------------------------------------------------------+----------'
[debug] Loaded Private actions:
.----------------------+--------------------------------------+--------------.
| Private | Class | Method
|
+----------------------+--------------------------------------+--------------+
| /default | Komodo::Controller::Root | default
|
| /end | Komodo::Controller::Root | end
|
| /index | Komodo::Controller::Root | index
|
'----------------------+--------------------------------------+--------------'
[debug] Loaded Path actions:
.-------------------------------------+--------------------------------------.
| Path | Private
|
+-------------------------------------+--------------------------------------+
| / | /default
|
| / | /index
|
'-------------------------------------+--------------------------------------'
[info] Komodo powered by Catalyst 5.80004
ok 1 - use Catalyst::Test;
Unexpected use of a standard filehandle while debugging:
The STDOUT and STDERR handles have been tied for remote debugging,
and can't be redirected in the code being debugged.
Try adding
untie(*STDOUT) if tied(*STDOUT);
untie(*STDERR) if tied(*STDERR);
to the code at /home/y/lib/perl5/site_perl/5.8/HTTP/Request/AsCGI.pm
line 124
Unexpected use of a standard filehandle while debugging:
The STDOUT and STDERR handles have been tied for remote debugging,
and can't have their mode changed in the code being debugged.
Try adding
untie(*STDOUT) if tied(*STDOUT);
untie(*STDERR) if tied(*STDERR);
to the code at /home/y/lib/perl5/site_perl/5.8/HTTP/Request/AsCGI.pm
line 128
Content-Length: 5610
Content-Type: text/html; charset=utf-8
Status: 200
X-Catalyst: 5.80004
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Language" content="en" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Komodo on Catalyst 5.80004</title>
... Catalyst welcome page follows ...
</body>
</html>
[info] *** Request 1 (0.059/s) [24392] [Tue May 19 22:40:48 2009] ***
[debug] "GET" request for "/" from "127.0.0.1"
[error] Caught exception in engine "substr outside of string at
/home/dandv/Komodo-PerlRemoteDebugging-5.1.3-28369-linux-x86/DB/RedirectStdOutput.pm
line 71."
Unexpected use of a standard filehandle while debugging:
The STDOUT and STDERR handles have been tied for remote debugging,
and can't be redirected in the code being debugged.
Try adding
untie(*STDOUT) if tied(*STDOUT);
untie(*STDERR) if tied(*STDERR);
to the code at /usr/lib/perl5/site_perl/5.8/HTTP/Request/AsCGI.pm line 257
not ok 2 - Request should succeed
# Failed test 'Request should succeed'
# at t/01app.t line 7.
# Looks like you failed 1 test of 2.