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

Re: [StrongED] Re: StrongHelp crashes on launch



In message <ccf85d3355.martin@xxxxxxxxxxxxxxxx>
          Martin Bazley <martin.bazley@xxxxxxxxxxxxxxxx> wrote:

> The following bytes were arranged on 14 Dec 2015 by Harriet Bazley :
>
> [snip]
>
> > Same error: undefined instruction at &204BEC6A (which looks like a random
> > bit of memory):
>
> Hmm.  Well, I just tried to reproduce this, and I think I might have
> found the problem.  Though how it apparently hasn't caused any problems
> before now is beyond me!

Thanks Martin, it looks like you've found the culprit.

Reproducing it is still difficult as it seems various bits come into
play. First I had to rename !Manuals so StrongHelp couldn't find it.

Apparently StrongHelp uses the first !Pre that it finds (in any manual)
rather than the one in the manual it's searching (I'm pretty sure that
!Pre is supposed to be manual specific so need to investigate that).

After that I got an error but no abort, the StrongHelp Wimp task quit
but the module stayed active - now zeropain-ing like crazy. So I killed
ZeroPain and retried then I got the abort that Harriet was seeing.

> Not that we couldn't find the cause, just that nobody present
> (including Fred) could agree on the best way to fix it.  But I really
> do think it should be dealt with.

The problem, as I remember, was how to handle all the old 26-bit !Pre's
that are out there. Possibly scan the code before execution and raise a
warning when we're on a 32-bit machine and !Pre isn't 32-bit?

Require the presence of ROL's utility header and refuse any !Pre that
doesn't have one? Possibly also check for the RO5 guard word (32OK) at
the end of the utility?

> Not that this particular copy of !Pre seems to care - its date stamp
> is 05 Oct 1997.
>
> This !Pre file seems likely to have been copied from the ones
> distributed with the SWI manuals, which were similarly ancient when I
> last looked at them.  Apparently it simply never occurred to anyone that
> it would ever be necessary to update them.

As David has already pointed out the latest OS, Toolbox and Wimp manuals
come with a 32-bit okay !Pre, but several other manuals don't.

> Two puzzling things about this particular case remain.  The first is why
> Reporter's manual would ever need to contain a program which, in its
> entirety, strips a leading "X" off the input string and then pushes it
> through OS_SWINumberToString if it is numeric.

To allow the lookup of Reporter's SWIs, even when started with 'X' or
specified in numeric form.

> The second is why, when launching a manual on startup, StrongHelp has
> seemingly taken to running its !Pre file.  Surely there cannot, by
> definition, be any "search string" to analyse here?  The earlier search
> problem affected all manuals, as they all needed to be searched (and
> hence !Pre-ed) to find the string, but here StrongHelp is demonstrably
> running exactly one !Pre file (if present).  Furthermore, it does not
> appear to do it if the manual is launched after, rather than before, the
> application.

Good questions but no answers yet, I need to do some digging to find out
when exactly !Pre is being called.

Cheers,
Fred.

-- 
StrongED Developer
http://www.stronged.iconbar.com/

--
To unsubscribe send a mail to StrongED+unsubscribe@xxxxxxxxxxxxxx
List archives at http://www.Torrens.org.uk/RO/StrongED/index.html