> 1. Is there a better way of restarting Gremlins that brings up the normal
> control window?


Nope.  Sadly, its not coming up is a bug.  I've included instructions for fixing
the bug at the end of this message.


> 2. Is there some way of getting gdb to access the restarted app again?


Don't know.  I don't think so, since gdb needs to be told information about your
application -- information that is sent when the application is started.

What you need is a low-level debugger like:

     PalmDebugger,
     debuffer (<http://www.pagesz.net/~sessoms/debuffer/>), or
     Debug (<http://customers.doubled.com/~joes/>).

These will connect to anything.  And while the information you get is at the
assembly level, you should at least be able to get a stack crawl and find out
what function (and where in the function) is causing the problem.


> 3. If I recompile my app to either fix the problem (when I determine what I
> think is causing the problem) or to show additional information or perform
> additional checks, do I have to start the 8 hour run again, or is there some
> way to get the gremlin run to start from the snapshot but using the
> re-compiled app?


Nope.  A Gremlin snapshot is a complete state save.  There's no way to
surgically replace the old application with the new application.


-- Keith Rollin
-- Palm OS Emulator engineer


Near the top of Application.cpp, add:

     Bool           gOpenGCWWindow;

Also add an "extern" declaration for it to Application.h. Next, in PrvOnTimer,
after:

     if (Patches::EvtGetEventCalled ())
     {
     ...
     }

add the following:

     if (gOpenGCWWindow)
     {
          gOpenGCWWindow = false;
          Platform::GCW_Open ();
     }

After the call to MMFOpenFiles, remove the following:

     // If we loaded a session file with a Gremlin running, turn
     // it off, but let the user turn it back on.

     if (Hordes::IsOn ())
     {
          Hordes::Stop ();
          Platform::GCW_Open ();
     }

In Document.cpp, add the following near the top:

     #include "Application.h"      // gOpenGCWWindow

In OpenOldDocument, after the call to Hordes::PostLoad(), add:

          // If we loaded a session file with a Gremlin running, turn
          // it off, but let the user turn it back on.

          if (Hordes::IsOn ())
          {
               Hordes::Stop ();
               gOpenGCWWindow = true;
          }



Reply via email to