MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: How to debug init.m?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg92349] Re: How to debug init.m?
  • From: Bob F <deepyogurt at gmail.com>
  • Date: Sun, 28 Sep 2008 07:22:07 -0400 (EDT)
  • References: <gbmps7$i91$1@smc.vnet.net>

On Sep 27, 8:24 pm, John Fultz <jfu... at wolfram.com> wrote:
> I agree that Tech Support is being a little onerous here.  Here's a tec=
hnique
> which ought to make debugging things much easier...
>
> First, with all of your settings in place, evaluate the following...
>
> Put[Options[$FrontEnd],
>   ToFileName[{$HomeDirectory}, "OldSettings.m"]];
>
> Then restart the FE with clean preferences.  And evaluate the following=
...
>
> TestOption[opt_] := (
>    Print["Testing option ", First[opt]];
>    Pause[3];
>    SetOptions[$FrontEnd, opt];
>    FrontEndTokenExecute["OpenHelpLink"];
>    Pause[2];
>    MathLink`CallFrontEnd[
>     FrontEnd`NotebookClose[FrontEnd`DefaultHelpViewerNotebook[]]]);
> Scan[TestOption, Get[ToFileName[{$HomeDirectory}, "OldSettings.m"]]];
>
> This will iterate through each option one at a time, telling you which on=
e it's
> trying.  Presumably, after one of the settings, it will crash.  Just =
keep an eye
> on it and see which one it is.  Feel free to reduce the time in the fir=
st call
> to Pause[] if you're an attentive and fast reader.
>
> Once finished, you can run the following to reset your settings to the wa=
y they
> were.
>
> SetOptions[$FrontEnd,
>  Get[ToFileName[{$HomeDirectory}, "OldSettings.m"]]]
>
> Or you could send me your init.m file and I can do it for you.
>
> Sincerely,
>
> John Fultz
> jfu... at wolfram.com
> User Interface Group
> Wolfram Research, Inc.
>

Well, I did what John suggested and no luck. The funny thing is that
after doing the shift-option_start_Mathematica, and running John's
program, then exiting, the init.m file is exactly what it was before
deleting the init.m file, but no crash during the running of John's
program. But I exited Mathematica and restarted and now with the
"rebuilt" init.m file from John's program, it crashes like it always
has.

I am suspecting that it is some combination of the lines in the init.m
file, not just a single one. But the puzzling thing is why does it not
crash after completing all the steps in John's program?  I looked at
the init.m file after John's program ran and it is the same before
exiting Mathematica as it is when starting Mathematica and it
crashing. So there seems to be something extra that happens during
startup that is not done when running this program like this.

One other tidbit that seems odd -- if I delete the init.m file
entirely and startup Mathematica I get two errors (same thing repeated
twice) about

ToExpression::notstrbox:
   FEPrivate`FrontEndResourceString[GetFEKernelInit]
     is not a string or a box. ToExpression can only interpret strings
or
     boxes as Mathematica input.

Is this pertinent? They go away with the problematic init.m file in
place. I don't recall ever seeing this error before. I do have a
couple of kernel configurations in the problematic init.m file, but
with deleting the init.m file, they are gone, so not sure why this
error would be here, as with the empty init.m file there are none
listed than the default "Local" and there does not seem to be anything
bogus there (only thing set is "Kernel name" of "Local",
"Automatically launch on front end startup" is checked, and "Basic
Options" has "Local Machine" set and "Kernel program:" set to
"MathKernel", and all other boxes are unchecked).

Any other suggestions? -- nevermind -- Well, I think I have figured it
out partly. The problem seems to occur even without my init.m file
(just removed it entirely) and then start up Mathematica, then open
the Option Inspector and set the "View" to "as text" (default is
"alphabetically"), then open the Documentation Center and the
"Internal self-test error" pops up but no crash. Will now give this
info to Wolfram and see if they can tell me why that it would matter
what mode Option Inspector was running in. Would people try this out
and see if you also get an "Internal self-test" error or a crash?? If
you do please let me know and I will pass this along to Wolfram as
well.

Thanks everyone -- will let you know what I find out from Wolfram. And
thanks very much to John Fultz -- without his program would not have
wandered into the real clue. One minor change I did make to his
program was to print a number in addition to the option so I could
quickly read the screen and know where it would crash, even though it
never did. Here is the revised program if anyone is interested...

ii = 1;
TestOption[opt_] := (Print["Option #", ii, " -- Testing option ",
First[opt]];
   ii = ii + 1;
   Pause[1];
   SetOptions[$FrontEnd, opt];
   FrontEndTokenExecute["OpenHelpLink"];
   Pause[1];
   MathLink`CallFrontEnd[
    FrontEnd`NotebookClose[FrontEnd`DefaultHelpViewerNotebook[]]]);
Scan[TestOption, Get[ToFileName[{$HomeDirectory}, "Old-init.m"]]];

By the way, the 217 line init.m file ended up being 38 different
options, so obviously several lines were needed for some options.

-Bob


  • Prev by Date: Re: Defining a custom Leibnitz operator in Mathematica
  • Next by Date: Plotting polar graph
  • Previous by thread: Re: How to debug init.m?
  • Next by thread: Re: Re: How to debug init.m?