- Wed Dec 06, 2017 3:35 am
#72333
Thanks very much Mmiscool, really helpful. It's been a while since I skimmed through the source - I can't say I immediately grasped it, its a huge project written in a language I only have a superficial understanding of - but it must be immensely frustrating and saddening for you to have this seemingly insoluble bug endangering such an enormous achievement. Really hard to debug with the limited tools available, with all the layers and complexities of the silicon, the underlying os, the complier/SDK, and the imported libraries, then the vagaries of the internet and browsers on top.
Apologies to Heckler and Electroguard if I've misremembered what they've said, but I think for Heckler once a basic script is properly stored on the esp, provided that the esp is rebooted before the basic program runs, he doesn't have an issue. Not sure if this applies for him if using Electroguard's test script.Heckler?
Electroguard has seen times where once a program is stored correct ly, and the esp has been rebooted, what is displayed on the browser is inconsistent. Rebooting the esp and rerunning the basic script may sometimes give different results on the browser (after shutting down and restarting the browser / device browser is running on?)
Eventually electrogard sees evidence of interpreter corruption. (Not sure how this is apparent? The esp then needs reformatting/reflashing.
If a save fails part way through, the esp reboots (or save may be interrupted and fail because the esp reboots). However the save OK message may still be displayed, indicating that this is not a true reboot - at least part of the interpreter tries to pick itself up and carry on. Is this espbasic trying to preserve things and recover, intentional bejaviour because to run a modified program espbasic needs reset, or the esp only restarting certain aspects?
My thought would be that after a program is modified and run the execution part of espbasic would stop, clear all user variables and close all files etc, then restart. It needs to be able to distinguish between a restart for a modified program and launching a chained program, when some variables might be preserved.
I'm wondering too about the life of the memory. On a heavily used file system presumably the index areas take a bit of a bashing....
All this is just half formed thoughts on my part. Essentially I think this is pain to track down because of the available tools. But I don't know what they are so I may be being unfair....