Strange debugger behavior

depstein at att.net depstein at att.net
Sat Dec 20 21:08:43 EST 2003


Some weeks ago on the list, Klaus Major kindly answered my question of how to tell if Metacard 
or Revolution was running by proposing the following handler:

function mcOrRev -- from Klaus Major
  try
    get revappversion() ## ;-)
    return "rr"
  catch errornum
    return "mc"
  end try
end mcOrRev

The handler works as intended, and I included it in a utility stack I use frequently.  When 
mcOrRev() gets called by a button in that stack, there is no problem.  But when this utility stack 
is open in Metacard -- but is not the topStack and is not in use -- I fairly often get inexplicable 
error messages that finger "revappversion" as the culprit.

When script execution is interrupted, the Metacard Execution Error dialog says it is "Processing 
token:  revappversion."  That dialog lists as "Object:" the object whose script was executing.  But 
that script neither contained the word "revAppVersion" nor called the mcOrRev handler.  My 
utility stack is the only place I have ever used "revAppVersion", and it was not in the message 
path.  (When my utility stack is not open at all, the problem does not arise).

When I click on "Script" in the Execution Error dialog, I am taken to a completely irrelevant script 
location.  When I repeat the same command that caused this erroneous error message, I tend to 
get the correct error message and script location.

It is as if the MC debugger has a traumatic memory of trying to evaluate revAppVersion, and 
keeps reporting that whenever there is a new problem.

Do these symptoms ring a bell with anyone else?  Does the "try" structure not completely 
insulate Metacard from experiencing problems from unknown functions? 

David Epstein


More information about the metacard mailing list