On Tue, Dec 14, 2004 at 02:13:17PM -0800, Jonathan Leffler wrote:
> On Fri, 3 Dec 2004 20:54:00 +0000, Tim Bunce <[EMAIL PROTECTED]> wrote:
> > On Fri, Dec 03, 2004 at 12:15:06PM -0800, Jonathan Leffler wrote:
> > >
> > > Use of uninitialized value in subroutine entry at t/t91udts.t line 97.
> > >
> > > $sth->execute(2, undef, undef, ..., undef) or stmt_fail;
> > 
> > That part is fine. It's something 'deeper' that triggering the
> > warning.  Probably in the driver. Perl says "in subroutine entry"
> > only because that's the last "op" that perl executed (before it
> > entered the DBI C-code).
> > 
> > Here's a trick to nail it:
> >     $SIG{__WARN__} = sub { dump() }; # core dump on warning
> 
> OK, the core dump winds through a number of functions (recognizably
> Perl or C library functions), but ends up going through:
> 
> ...more...

I need to see more of the "...more..." - everything up to the point
where you can see the warn being triggered.

> Perl_magic_set()
> Perl_newHVhv()
> dbd_ix_st_bind_ph() -- DBD::Informix code.
> dbdxst_bind_params() -- DBI code?
> XS_DBD__Informix__st_execute() -- Interface C code for $sth->execute()?
> XS_DBI_dispatch() -- DBI code
> Perl_magic_nextpack()
> Perl_fbm_instr()
> ...more...

That's an odd looking stack trace. magic_nextpack is involved in
iterating through tied hashes, calling "FIRSTKEY" or "NEXTKEY".
But there's no way Perl_magic_nextpack should trigger a direct
DBI dispatch into execute().

Perhaps you've "helpfully" limited the detail here. If so, please
don't.  Give me the whole stack trace.

(And using a perl configured with -DDEBUGGING and a DBI and
DBD::Informix built with that perl will give more detail,
like params to functions, in the stack trace.)

> Has anything changed significantly in the binding of parameters since,
> say, DBI 1.14?  Short guidance appreciated - I'll be investigating
> anyway, but help on where to look might make things easier.

Er, DBI 1.14 is over 4 years old. It would be fair to say that much
has changed. Feel free to binary-chop your way through the versions
to isolate the first that displays the warning.

Tim.

Reply via email to