lmi
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lmi] Regression with wx-2.9.0-RC2


From: Greg Chicares
Subject: Re: [lmi] Regression with wx-2.9.0-RC2
Date: Sat, 09 May 2009 02:39:37 +0000
User-agent: Thunderbird 2.0.0.21 (Windows/20090302)

On 2009-05-08 23:08Z, Vadim Zeitlin wrote:
> On Fri, 08 May 2009 20:04:54 +0000 Greg Chicares <address@hidden> wrote:
> 
> GC> I built lmi with wx-2.9.0-RC2 and tried to run it this way:
> GC>   ./lmi_wx_shared --data_path=/opt/lmi/data
> GC> and the GUI never appeared.
> ...
> GC> I haven't had time to debug this yet, but thought I'd mention
> GC> it right away in case you can easily reproduce it. I'll study
> GC> it closely tonight.
> 
>  Sorry, I have no idea about this -- I am using (well, debugging, mostly)
> LMI with 2.9 myself and have never seen this problem. As for debugging
> this, the first thing I'd check would be if the main window is created at
> all, e.g. using the Spy++ utility included in the Platform SDK. If it is
> created, it must be position off screen (or resized to something
> ridiculous) to be invisible. But my suspicion is that it isn't created
> because of some fatal error which somehow gets lost and unreported when
> using mingw32. However at this stage this is pure speculation, of course.

I think the behavior of wxExecute() has changed when it is called
before the wxApp::OnInit() override returns.

In particular, if I change 'system_command_wx.cpp' thus:

+safely_show_message("Running system command: about to call wxExecute");
     long int exit_code = wxExecute(command_line, output, errors);
+safely_show_message("Running system command: wxExecute called");

then I see the first message only, but not the second. The problem
arises when this is called in 'authenticity.cpp':

+safely_show_message("About to check md5sums"); // This is shown.
         system_command("md5sum --check --status " + 
std::string(md5sum_file()));
+safely_show_message("Checked md5sums");        // This is not shown.

The logic is admittedly convoluted. We have a customer who wanted
the GUI either to appear, or not to appear, depending on the
contents of a special '.ini' file; probably I should have resisted
that request, but now it would be difficult to take it away. And
(for all customers) an `md5sum` validation is performed (via
wxExecute() so that we can get the output if it fails)...before
the special '.ini' file is dealt with, and thus before the GUI
appears. But this all works with wx-2.8.10 and earlier.

And lmi still freezes if I call authenticate_system() later, right
after 'frame_->Show(true);' in Skeleton::OnInit(). Could it be
that wxExecute() is trying to use a wx logging facility that has
not been initialized by that point?





reply via email to

[Prev in Thread] Current Thread [Next in Thread]