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
Problem with autouse (causing Perl to crash) #7307
Comments
From @steve-m-hayCreated by @steve-m-hayI have a problem using the "autouse" pragma which is causing perl Foo.pmpackage Foo; Bar.pmpackage Bar; Running: >perl -MBar -MFoo -we "Foo::foo()" produces the output: calling foo() once ... and then perl.exe crashes with an Access Violation. Here's a stacktrace Perl_pp_entersub() line 2912 + 2 bytes The same command-line runs fine, producing the second "... ok" line, I can fix it by reversing the order in which the Foo and Bar modules are >perl -MFoo -MBar -we "Foo::foo()" or by not loading Bar initially: >perl -MFoo -we "Foo::foo()" or by changing the following line within Bar.pm: use autouse 'Foo' => qw(foo()); to either: use autouse 'Foo' => qw(foo); (!!!) or simply: use Foo; (understandable). Perl Info
|
From @nwc10On Wed, May 19, 2004 at 11:00:58AM -0000, Steve Hay wrote:
$ valgrind --db-attach=yes ./perl -Ilib -MBar -MFoo -we "Foo::foo()" ... 0x080f3148 in Perl_pp_entersub (my_perl=0x3c20d024) at pp_hot.c:2701 2147483529 is 0x7fffff89 I'm not sure where to go next. That first sigaction warning is irritating, Nicholas Clark |
The RT System itself - Status changed from 'new' to 'open' |
From @iabynOn Sat, May 29, 2004 at 09:00:25PM +0100, Nicholas Clark wrote:
it can be reduced to the following: $done = 0; f(); basically the first time f() is called at nested depth 2, its via goto &f, I've fixed it so that goto &f unconditionally creates a new @_ in slot 0. Dave. -- Change 22870 by davem@davem-percy on 2004/05/30 14:30:45 [perl #29708] Problem with autouse (causing Perl to crash) Affected files ... ... //depot/perl/pad.c#32 edit Differences ... ==== //depot/perl/pad.c#32 (text) ==== @@ -1523,6 +1523,9 @@ +/* XXX pad_push is now always called with has_args == 1. Get rid of ==== //depot/perl/pp_ctl.c#394 (text) ==== @@ -2329,7 +2329,7 @@ ==== //depot/perl/t/op/goto.t#22 (xtext) ==== @@ -7,7 +7,7 @@ -print "1..32\n"; require "test.pl"; @@ -229,6 +229,19 @@ +# [perl #29708] - goto &foo could leave foo() at depth two with bypass: |
@iabyn - Status changed from 'open' to 'resolved' |
Migrated from rt.perl.org#29708 (status was 'resolved')
Searchable as RT29708$
The text was updated successfully, but these errors were encountered: