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

Reply via email to