At 11:14 PM -0500 10/23/06, [EMAIL PROTECTED] wrote: >Greetings: > >I'm looking for general ideas to troubleshoot >a compile-time module load; Specifically: "use DBD::Sybase;" > >I've had the DBI bits working with MySQL for sometime now; > >Now, I wanted to connect to an MS SQL system. >using FreeTDS. (the FreeTDS tsql test client appears to work ok, so far)
I have used and do use Perl/DBI/DBD::Sybase/FreeTDS, though it's a year or more since I built my set-up and so it wouldn't be the latest versions of everything. I seem to remember it did not pass all tests, but it did everything I was interested in so I didn't pursue the failures. > >basically, the test scripts all choke on the "use DBD::Sybase;" >(possibly an accvio, down deep) > > ... > t/base.......... > dubious > Test returned status 12 (wstat 1024, 0x400) (VMS status is 12) > ... How short a reproducer can you do? I.e., does this fail: $ perl -e "use DBD::Sybase;" > >in the base.t script, it doesn't do a "use DBD::Sybase", >but ->install_driver(). >at the failing lines, we do not reach either print statement. >(i suspect a caught/handled exception) > > $drh = DBI->install_driver('Sybase'); > (ref $drh eq 'DBI::dr') ? print "ok 4\n" : print "not ok 4\n"; > > >I didn't want to belabor the list with gory details, >(versions, environments, etc), but I wondered if anyone could >speak to/of a few general things to check, when a module load fails. > >looking at $set watch/class=all f.ex, suggests that we're >finding the PL_DBD__SYBASE.EXE ok. (statically linked against >a set of FreeTDS .olb's (libct,libtds)) A slightly more focused way of seeing that it finds the shareable image is to set this logical name: $ define PERL_DL_DEBUG 10 There are also a number of Perl debugging options you can pass at the command line if you have configured with -DDEBUGGING enabled. For example, if you want to see all the opcodes go flying by, run with -Dt. For details, see $ perldoc perlrun Having said all that, if it really is an accvio somewhere in the startup code of DBD::Sybase, the best way to debug it is the way that's most painful to set up. Build Perl from source with support for the VMS debugger (-Dusevmsdebug at configure time). Build DBI and DBD::Sybase against it with the same options. Look at any stack trace you get for clues about where to set break points. Etc. -- ________________________________________ Craig A. Berry mailto:[EMAIL PROTECTED] "... getting out of a sonnet is much more difficult than getting in." Brad Leithauser