I wondering if anyone has seen this before.  In my application, any time I make 
a call to wx::MessageBox(), the application hangs and chews up 100% of the CPU. 
 

The call looks like this:

Wx::MessageBox
        (
                $message . "\n" .
                "Would you like to generate a debug stack trace?",
                $title,
                wxICON_ERROR|wxYES_NO
        );

If I write just a simple little script that calls this it works fine, so it is 
something in my application that is causing this.  Is it because I'm not 
passing a parent window to it?  Because I'm using this for error reporting I 
don't have access to the top level window object.  I ran it with the Perl 
debugger, and turned on tracing just before this call and this is all that is 
does:

AlchemistLib::error_report(AlchemistLib.pm:304):
304:            my $answer = Wx::MessageBox
305:            (
306:                    $message . "\n" .
307:                    "Would you like to generate a debug stack trace?",
308:                    $title,
309:                    wxICON_ERROR|wxYES_NO
310:            );
  DB<1> t
Trace = on
  DB<1> n
Wx::AUTOLOAD(/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:41):
41:       my( $constname );
Wx::AUTOLOAD(/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:43):
43:       ($constname = $AUTOLOAD) =~ s<^.*::>{};
Wx::AUTOLOAD(/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:44):
44:       return 0 if $constname eq 'wxVERSION';
Wx::AUTOLOAD(/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:46):
46:       my( $val ) = constant($constname, 0 );
Wx::AUTOLOAD(/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:48):
48:       if ($! != 0) {
Wx::AUTOLOAD(/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:55):
55:       eval "sub $AUTOLOAD { $val }";
Wx::AUTOLOAD(/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:56):
56:       goto &$AUTOLOAD;
Wx::wxICON_ERROR((eval 
121)[/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:55]:1):
1:      sub Wx::wxICON_ERROR { 512 }
Wx::AUTOLOAD(/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:41):
41:       my( $constname );
Wx::AUTOLOAD(/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:43):
43:       ($constname = $AUTOLOAD) =~ s<^.*::>{};
Wx::AUTOLOAD(/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:44):
44:       return 0 if $constname eq 'wxVERSION';
Wx::AUTOLOAD(/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:46):
46:       my( $val ) = constant($constname, 0 );
Wx::AUTOLOAD(/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:48):
48:       if ($! != 0) {
Wx::AUTOLOAD(/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:55):
55:       eval "sub $AUTOLOAD { $val }";
Wx::AUTOLOAD(/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:56):
56:       goto &$AUTOLOAD;
Wx::wxYES_NO((eval 
122)[/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Wx.pm:55]:1):
1:      sub Wx::wxYES_NO { 10 }

The call to Wx::wxYES_NO is where it stops. When I use different flags for 
wxMESSAGE_BOX it stops at different, but similar places.

I'm kind of at a loss as how to debug this.  

Thanks,
Daniell Freed
winter...@gmail.com



Reply via email to