On Tue, Dec 14, 2004 at 06:28:57PM -0800, Jonathan Leffler wrote:
> Sorry - here is the full trace....

It's quite different to the one you posted before - and much
more normal...

>   [11] Perl_report_uninit(0xff24315c, 0xff24315c, 0x0, 0x42, 0x3700,
> 0x124400), at 0x8eb0c
>   [12] Perl_sv_2pv_flags(0x31f544, 0xffbee8e0, 0x2, 0xff23c008,
> 0xffbee86c, 0x303a00), at 0x92b64
>   [13] Perl_sv_2pv(0x31f544, 0xffbee8e0, 0x0, 0x34f4ae, 0x34f4ac,
> 0x0), at 0x92118
>   [14] dbd_ix_st_bind_ph(0x1, 0x34d328, 0x2, 0x31f544, 0xff0a5b48,
> 0x127870), at 0xff08dcb8
>   [15] dbdxst_bind_params(0x2a1760, 0x34d328, 0xe, 0x10, 0xff0a5b3c,
> 0xff116a78), at 0xff084b38
>   [16] XS_DBD__Informix__st_execute(0x3014bc, 0x272268, 0x0, 0x2e9bf8,
> 0x400, 0x1272e0), at 0xff0870bc

So in your dbd_ix_st_bind_ph function you're calling sv_2pv, probably
via a macro such as SvPV(sv), on the undef value.

All you've got to do is find it. If you compile/link DBD::Informix
with the -g option the stack trace should give you the line number.

Tim.

> On Wed, 15 Dec 2004 01:00:38 +0000, Tim Bunce <[EMAIL PROTECTED]> wrote:
> > 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.
> 
> OK - let's take DBI 1.00 instead then :-)
> 
> I'll try and isolate the problem better too.
> 
> 
> -- 
> Jonathan Leffler <[EMAIL PROTECTED]>  #include <disclaimer.h>
> Guardian of DBD::Informix - v2003.04 - http://dbi.perl.org
> "I don't suffer from insanity - I enjoy every minute of it."

Reply via email to