On Thursday, October 29, Tim Bunce wrote: > What does "print *imp_xxh->com.std.dbistate" show in gdb?
(gdb) print *imp_xxh->com.std.dbistate $1 = {check_version = 0xae79c0 <check_version>, version = 94, size = 108, xs_version = 93, spare_pad = 0, debug = 0, logfp = 0x95bac94, neat_svpv = 0xaebd40 <neatsvpv>, getcom = 0xaf5b70 <dbih_getcom>, clearcom = 0xaf4fa0 <dbih_clearcom>, event = 0xae7b10 <dbih_event>, set_attr_k = 0xaf2de0 <dbih_set_attr_k>, get_attr_k = 0xaf1840 <dbih_get_attr_k>, get_fbav = 0xaef8e0 <dbih_get_fbav>, make_fdsv = 0xaff320 <dbih_make_fdsv>, bind_as_num = 0xae77e0 <quote_type>, hash = 0xaea140 <dbi_hash>, preparse = 0, neatsvpvlen = 0x95f8ac0, thr_owner = 0x959c008, logmsg = 0xaeab90 <dbih_logmsg>, set_err_sv = 0xaee450 <set_err_sv>, set_err_char = 0xaef6e0 <set_err_char>, bind_col = 0xaedf40 <dbih_sth_bind_col>, logfp_ref = 0x0, pad2 = {0x0, 0x0, 0x0, 0x0}} > This may help, or it may just shift or hide the underlying problem: > > --- DBI.xs (revision 13337) > +++ DBI.xs (working copy) > @@ -1436,7 +1436,7 @@ > dPERINTERP; > dTHR; > int dump = FALSE; > - int debug = DBIS_TRACE_LEVEL; > + int debug = DBIc_TRACE_LEVEL(imp_xxh); > int auto_dump = (debug >= 6); > imp_xxh_t * const parent_xxh = DBIc_PARENT_COM(imp_xxh); > /* Note that we're very much on our own here. DBIc_MY_H(imp_xxh) almost > */ I applied that to DBI-1.609, and re-ran the test. Here's the output : ~$ perl test.pl Segmentation fault (core dumped) ~$ gdb -c core perl [..] Core was generated by `perl test.pl'. Program terminated with signal 11, Segmentation fault. #0 0x00e3e001 in dbih_clearcom (imp_xxh=0x843e388) at DBI.xs:1429 1429 dPERINTERP; (gdb) where #0 0x00e3e001 in dbih_clearcom (imp_xxh=0x843e388) at DBI.xs:1429 #1 0x00e3095d in XS_DBD___mem__common_DESTROY (my_perl=0x82f3008, cv=0x8359978) at DBI.xs:5135 #2 0x080b12c0 in Perl_pp_entersub (my_perl=0x82f3008) at pp_hot.c:2866 #3 0x080ad2f2 in Perl_call_sv (my_perl=0x82f3008, sv=0x8359978, flags=150) at perl.c:2653 #4 0x080c3293 in Perl_sv_clear (my_perl=0x82f3008, sv=0x8450720) at sv.c:5122 #5 0x080c398a in Perl_sv_free2 (my_perl=0x82f3008, sv=0x8450720) at sv.c:5368 #6 0x08098d86 in Perl_mg_free (my_perl=0x82f3008, sv=0x8450680) at mg.c:498 #7 0x080c349e in Perl_sv_clear (my_perl=0x82f3008, sv=0x8450680) at sv.c:5159 #8 0x080c398a in Perl_sv_free2 (my_perl=0x82f3008, sv=0x8450680) at sv.c:5368 #9 0x080b8b19 in S_visit (my_perl=<value optimized out>, f=<value optimized out>, flags=2048, mask=2048) at sv.c:387 #10 0x080b8b79 in Perl_sv_clean_objs (my_perl=0x82f3008) at sv.c:495 #11 0x080af3c7 in perl_destruct (my_perl=0x82f3008) at perl.c:799 #12 0x08063fa5 in main (argc=2, argv=0xbff415d4, env=0xbff415e0) at perlmain.c:115 (gdb) print *imp_xxh->com.std.dbistate $1 = {check_version = 0xe309c0 <check_version>, version = 94, size = 108, xs_version = 93, spare_pad = 0, debug = 0, logfp = 0x8311c44, neat_svpv = 0xe34d40 <neatsvpv>, getcom = 0xe3eb80 <dbih_getcom>, clearcom = 0xe3dfa0 <dbih_clearcom>, event = 0xe30b10 <dbih_event>, set_attr_k = 0xe3bde0 <dbih_set_attr_k>, get_attr_k = 0xe3a840 <dbih_get_attr_k>, get_fbav = 0xe388e0 <dbih_get_fbav>, make_fdsv = 0xe48330 <dbih_make_fdsv>, bind_as_num = 0xe307e0 <quote_type>, hash = 0xe33140 <dbi_hash>, preparse = 0, neatsvpvlen = 0x834f9c8, thr_owner = 0x82f3008, logmsg = 0xe33b90 <dbih_logmsg>, set_err_sv = 0xe37450 <set_err_sv>, set_err_char = 0xe386e0 <set_err_char>, bind_col = 0xe36f40 <dbih_sth_bind_col>, logfp_ref = 0x0, pad2 = {0x0, 0x0, 0x0, 0x0}} -Brian _______________________________________________ DBD-SQLite mailing list DBD-SQLite@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite