I may have spoke to soon on this working. It worked on a simple program but when I tried to connect to Oracle I get the following, I checked for PadWalker and it is there. When I do other simple programs I can see the variables. Any ideas.
Error Parsing Debugger Variables
*******************************
*******************************
+++++++Error Parsing Vars++++++
*******************************
*******************************
NS00000006$DEBUGS000000011NS00000004$dbhS00000017DBI::db=HASH(0x864a898)Use of uninitialized value in string eq at /home/billb/eclipse/plugins/org.epic.debug_0.3.2//dumpvar_epic.pm line 233.
dumpvar_epic::unwrap('DBI::db=HASH(0x864a898)',3,-1) called at /home/billb/eclipse/plugins/org.epic.debug_0.3.2//dumpvar_epic.pm line 138
dumpvar_epic::DumpElem('DBI::db=HASH(0x864a898)',3,-1) called at /home/billb/eclipse/plugins/org.epic.debug_0.3.2//dumpvar_epic.pm line 410
dumpvar_epic::dumplex('$dbh','REF(0x8584398)',-1) called at (eval 18)[/apps/perl/5.8.0/lib/5.8.0/perl5db.pl:17] line 2
eval '($@, $!, $^E, $,, $/, $\\, $^W) = @saved;package main; $^D = $^D | $DB::db_stop;
;{eval { require PadWalker; PadWalker->VERSION(0.08) }or print $DB::OUT ("PadWalker module not found - please install\\n");do \'dumpvar_epic.pm\' unless defined &dumpvar_epic::dumpvar_epic;defined &dumpvar_epic::dumpvar_epic or print $DB::OUT "dumpvar_epic.pl not available.\\n";my $h = eval { PadWalker::peek_my(2) };my @vars = split (\' \',\'\');$@ and $@ =~ s/ at .*//, print $DB::OUT ($@);my $savout = select($DB::OUT);dumpvar_epic::dumplex($_,$h->{$_},defined $option{dumpDepth} ? $option{dumpDepth} : -1,@vars) for sort keys %$h;print "E";select($savout);};;
;' called at /apps/perl/5.8.0/lib/5.8.0/perl5db.pl line 17
DB::eval called at /apps/perl/5.8.0/lib/5.8.0/perl5db.pl line 1323
DB::DB called at /home/billb/workspace/AC/TestConnect.pl line 35
S0000000e <empty hash> NS00000008$dirnameS0000000c'/data/arch'NS00000016$export_connect_stringS00000082'apex/apexprod@ (DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=dflorap01.itg.ti.com)(PORT=1521))
(CONNECT_DATA=(SID=FLPMTRIC)))'NS00000008$hashrefS00000005undefNS00000009$hostnameS00000016'dflorap01.itg.ti.com'NS00000002$iS000000011NS00000009$passwordS0000000a'apexprod'NS00000004$sidS0000000a'FLPMTRIC'NS00000009$usernameS00000006'apex'E-------------------------------
-------------------------------
+++++++Error Parsing Vars++++++
-------------------------------
-------------------------------
Program -- works when you run it from command line.
#!/apps/perl/5.8.0/bin/perl -w
$ENV{ORACLE_HOME}="/apps/oracle/9.2.0.1.0/product";
$| = 1;
use strict;
use DBI;
use DBI qw(:sql_types);
use DBD::Oracle qw(:ora_types);
use File::Find;
use Data::Dumper; $Data::Dumper::Indent=1;
my $DEBUG = 1; ## verbose
#my $dirname = "s:/links/arch"; # PC
my $dirname = "/data/arch";
my $username = 'xxxxxx';
my $password = 'xxxxxx';
my $hostname = 'xxxxx.xxxxx.xx.xxx';
my $sid = 'XXXXXX';
my $hashref;
my $export_connect_string = qq($username/$password@ (DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=$hostname)(PORT=1521))
(CONNECT_DATA=(SID=$sid))));
my $dbh = DBI->connect('dbi:Oracle:',$export_connect_string,"", {
ChopBlanks => 1,
ShowErrorStatement => 1,
FetchHashKeyName => 'NAME_uc',
AutoCommit => 0,
PrintError => 1,
RaiseError => 1
} ) or die "Can't connect to database: $DBI::errstr\n";
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I may have spoke to soon on this working. It worked on a simple program but when I tried to connect to Oracle I get the following, I checked for PadWalker and it is there. When I do other simple programs I can see the variables. Any ideas.
Error Parsing Debugger Variables
*******************************
*******************************
+++++++Error Parsing Vars++++++
*******************************
*******************************
NS00000006$DEBUGS000000011NS00000004$dbhS00000017DBI::db=HASH(0x864a898)Use of uninitialized value in string eq at /home/billb/eclipse/plugins/org.epic.debug_0.3.2//dumpvar_epic.pm line 233.
dumpvar_epic::unwrap('DBI::db=HASH(0x864a898)',3,-1) called at /home/billb/eclipse/plugins/org.epic.debug_0.3.2//dumpvar_epic.pm line 138
dumpvar_epic::DumpElem('DBI::db=HASH(0x864a898)',3,-1) called at /home/billb/eclipse/plugins/org.epic.debug_0.3.2//dumpvar_epic.pm line 410
dumpvar_epic::dumplex('$dbh','REF(0x8584398)',-1) called at (eval 18)[/apps/perl/5.8.0/lib/5.8.0/perl5db.pl:17] line 2
eval '($@, $!, $^E, $,, $/, $\\, $^W) = @saved;package main; $^D = $^D | $DB::db_stop;
;{eval { require PadWalker; PadWalker->VERSION(0.08) }or print $DB::OUT ("PadWalker module not found - please install\\n");do \'dumpvar_epic.pm\' unless defined &dumpvar_epic::dumpvar_epic;defined &dumpvar_epic::dumpvar_epic or print $DB::OUT "dumpvar_epic.pl not available.\\n";my $h = eval { PadWalker::peek_my(2) };my @vars = split (\' \',\'\');$@ and $@ =~ s/ at .*//, print $DB::OUT ($@);my $savout = select($DB::OUT);dumpvar_epic::dumplex($_,$h->{$_},defined $option{dumpDepth} ? $option{dumpDepth} : -1,@vars) for sort keys %$h;print "E";select($savout);};;
;' called at /apps/perl/5.8.0/lib/5.8.0/perl5db.pl line 17
DB::eval called at /apps/perl/5.8.0/lib/5.8.0/perl5db.pl line 1323
DB::DB called at /home/billb/workspace/AC/TestConnect.pl line 35
S0000000e <empty hash> NS00000008$dirnameS0000000c'/data/arch'NS00000016$export_connect_stringS00000082'apex/apexprod@ (DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=dflorap01.itg.ti.com)(PORT=1521))
(CONNECT_DATA=(SID=FLPMTRIC)))'NS00000008$hashrefS00000005undefNS00000009$hostnameS00000016'dflorap01.itg.ti.com'NS00000002$iS000000011NS00000009$passwordS0000000a'apexprod'NS00000004$sidS0000000a'FLPMTRIC'NS00000009$usernameS00000006'apex'E-------------------------------
-------------------------------
+++++++Error Parsing Vars++++++
-------------------------------
-------------------------------
Program -- works when you run it from command line.
#!/apps/perl/5.8.0/bin/perl -w
$ENV{ORACLE_HOME}="/apps/oracle/9.2.0.1.0/product";
$| = 1;
use strict;
use DBI;
use DBI qw(:sql_types);
use DBD::Oracle qw(:ora_types);
use File::Find;
use Data::Dumper; $Data::Dumper::Indent=1;
my $DEBUG = 1; ## verbose
#my $dirname = "s:/links/arch"; # PC
my $dirname = "/data/arch";
my $username = 'xxxxxx';
my $password = 'xxxxxx';
my $hostname = 'xxxxx.xxxxx.xx.xxx';
my $sid = 'XXXXXX';
my $hashref;
my $export_connect_string = qq($username/$password@ (DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=$hostname)(PORT=1521))
(CONNECT_DATA=(SID=$sid))));
my $dbh = DBI->connect('dbi:Oracle:',$export_connect_string,"", {
ChopBlanks => 1,
ShowErrorStatement => 1,
FetchHashKeyName => 'NAME_uc',
AutoCommit => 0,
PrintError => 1,
RaiseError => 1
} ) or die "Can't connect to database: $DBI::errstr\n";
Can you reproduce the problem without the Oracle stuff? Note that your password got revealed in the debug message.
Does debugging work if you remove -w from the first line?
It worked. Removing the -w and everything seems to work.
Thanks...and more thanks.
So why do warnings have to be disabled?
A bug in the (EPIC) debugger, I think. It seems difficult to reproduce without the Oracle environment.
Oracle environment? My script has absolutely nothing to do with that. I'll see if I can narrow down a test case.