From: Jo E. S. <jo....@en...> - 2024-03-20 19:58:00
|
On Sun, 2024-01-28 at 15:00 +0100, Jo Even Skarstein wrote: > On Sun, 2024-01-28 at 13:15 +0000, Jo Even Skarstein wrote: > > > > > this. I will try to make a test-program to reproduce the problem. > > I am able to reproduce the problem with this program (typed in, > beware > of typos): > > #include <aes.h> > #include <mintbind.h> > > void main(void) > { > int a = 0, b = 0; > > appl_init(); > > while (1) > { > long d; > > Fselect(10, &d, &d, &d); > a = appl_find((void *)(-3L << 16)); > > if (a != b) > { > Cconws("New top application\n\r"); > b = a; > } > } > } > > With the ec3 build an newer this program will be terminated due to a > bus error when Pure C starts. Does not happen with previous builds. Still struggling with this one, it turns out that when this bug kicks in and memory protection is not enabled, the AES locks up and a reboot is necessary. It also looks like the problem is triggered by calling appl_find(3<<16) while or immediately after switching to another top application. Decreasing the frequency of the appl_find call decreases the chances of a crash, but does not remove it. For now I have worked around this by replacing the call to appl_find with wind_get WF_TOP/WF_OWNER calls, but this is not ideal as it does not report the correct top application when the top application does not have an open window. Jo Even |