New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bleadperl v5.19.5-83-g43e4250 breaks JJORE/Enbugger-2.016.tar.gz #13831
Comments
From @andkgit bisect commit 43e4250 [perl #119799] Set breakpoints without *DB::dbline diagnostics http://www.cpantesters.org/cpan/report/c3d2dc84-da4d-11e3-af68-4cfd72305bfd ticket at rt.cpan https://rt.cpan.org/Ticket/Display.html?id=95079 perl -V Summary of my perl5 (revision 5 version 19 subversion 6) configuration: Characteristics of this binary (from libperl): |
From @tonycozOn Tue May 13 11:40:17 2014, andreas.koenig.7os6VVqR@franz.ak.mind.de wrote:
I think this is a case of Enbugger simply needing to be updated to match the new magic handling of the %{"_<$filename"} hashes. Enbugger sets the following magic specifically on %DB::dbline: hv_magic(hv, NULL, PERL_MAGIC_dbfile); and the mg_obj of NULL is copied to the element magic (and turned into dbline) when the element temp is created. This worked fine before 43e4250. With 43e4250, perl sets the following magic on the HV: hv_magic(GvHVn(gv), GvAVn(gv), PERL_MAGIC_dbfile); and the dbline magic expects the mg_obj to contain the AV associated with the breakpoint HV so it can check whether there is a line to break on and which op to break on. So when the new dbline magic code interacts with the older magic set by Enbugger, bad things happen. I've attached a possible fix, this passes all tests on blead, and on 5.18.0 (though it does unnecessary things on 5.18.0). Tony |
From @tonycozEnbugger.diffdiff -ru Enbugger-2.016-orig/Enbugger.xs Enbugger-2.016/Enbugger.xs
--- Enbugger-2.016-orig/Enbugger.xs 2014-04-26 01:58:29.000000000 +1000
+++ Enbugger-2.016/Enbugger.xs 2014-05-15 10:51:28.000000000 +1000
@@ -231,13 +231,12 @@
Enbugger_set_magic_dbfile(rv)
SV *rv
INIT:
- HV *hv;
+ GV *gv;
CODE:
assert(SvROK(rv));
-
- hv = (HV*) SvRV(rv);
- assert(SVt_PVHV == SvTYPE(hv));
- hv_magic(hv, NULL, PERL_MAGIC_dbfile);
+ gv = (GV*)SvRV(rv);
+ assert(SVt_PVGV == SvTYPE(gv));
+ hv_magic(GvHVn(gv), GvAVn(gv), PERL_MAGIC_dbfile);
diff -ru Enbugger-2.016-orig/lib/Enbugger.pm Enbugger-2.016/lib/Enbugger.pm
--- Enbugger-2.016-orig/lib/Enbugger.pm 2014-04-26 01:58:29.000000000 +1000
+++ Enbugger-2.016/lib/Enbugger.pm 2014-05-15 10:51:28.000000000 +1000
@@ -356,11 +356,11 @@
if ( not defined $file ) {
*DB::dbline = [];
*DB::dbline = {};
- Enbugger::set_magic_dbfile( \%DB::dbline );
}
else {
no strict 'refs';
*DB::dbline = \*{"main::_<$file"};
+ Enbugger::set_magic_dbfile( \*DB::dbline );
}
}
@@ -399,8 +399,8 @@
if ( ! *$glob{HASH} ) {
my %breakpoints;
- Enbugger::set_magic_dbfile(\%breakpoints);
*$glob = \%breakpoints;
+ Enbugger::set_magic_dbfile($glob);
}
$$symname ||= $file;
|
The RT System itself - Status changed from 'new' to 'open' |
From @rjbsResolved as the patch has been filed with the dist. -- |
@rjbs - Status changed from 'open' to 'resolved' |
Migrated from rt.perl.org#121862 (status was 'resolved')
Searchable as RT121862$
The text was updated successfully, but these errors were encountered: