kategoria: AMOS
[#1] Irytujące 'bugi' w AMOSie.
Czy nie natknęliście się przypadkiem na takie? Pewnego razu po wczytaniu ostatnio zapisanego źródła i uruchomieniu (F1) program 'przelatywał' i kończył się na ostatniej linii. Pętla główna po prostu przestała istnieć. Po prostu zero logiki. Problemem okazała się procedura, jak to najlepiej określić 'duch' Tłumaczę o co chodzi i jak sobie z tym poradziłem. Procedur było kilkanaście. Wbudowany monitor olewał temat i szybko stwierdziłem, żeby go też olać. Nie mogłem pojąć o co chodzi, bo po standardowym wejściu screen open, load iff i itd. był loop (do-loop). Straciłem trochę czasu na kombinowaniu w tym loopie, więc zacząłem po kolei otwierać procedury. Któraś z kolei po otwarciu wyświetliła mi mniej więcej takie coś (spreparowałem to na potrzebę przykładu):



Po naciśnięciu BACKSPACE ta linia zniknęła, a nie usnęła się znak po znaku jak zwykły tekst. I wszystko znowu zaczęło działać sprawnie.

Teraz mam kolejny problem. W procedurze mam trzy takie same działania warunkowe które różnią się od siebie zmienną wywołania przez IF.
przykładowo:

if A1=1
````print "A1=1"
endif

if A2=1
````print "A2=1"
endif

if A3=1
````print "A3=1"
endif

Podany dla A1=1 nie reaguje. Chociaż je analizowałem, powielałem z tych dwóch które działają w tej procedurze. I ciągle to samo, aż do porzygu. Procedura ta działa w poprzednich wersjach (już dawno nauczyłem się robić backupy (; ) To skopiowanie jej niczego nie wnosi. Zaznaczam też, że przy tym mechanizmie nie było nic grzebane i samo się stało.

Będę próbował, jedyne co mi przychodzi do głowy:

1. wywalać po kolei procedury i sprawdzać czy zadziała.
2. zapisać do ASCII i wczytać.
3. Wrzucić do AMOSa 1.3, bo zgodność, rzekomo jest.

Miał ktoś taki przypadek, że mu procedura ześwirowała?

Musze spadać. Może wieczorem mi się uda sprawdzić te 3 punkty.

Pozdro dla AMOSowców OK

ps. oczywiście piszcie w tym temacie, jeśli się wam udało poradzić z jakąś 'anomalią' AMOSową. Przyczynę, występowanie i koniecznie unicestwienie.
[#2] Re: Irytujące 'bugi' w AMOSie.

@groovebox, post #1

A czy zmienne A1, A2, A3 są globalne ?
Czy może przekazujesz je przez argumenty procedury ?
[#3] Re: Irytujące 'bugi' w AMOSie.

@RAL, post #2

Tak, są globalne. Ale przeanalizowałem kilka dobrych razy cały kod i to nie ma prawa nie działać (przynajmniej na tym się zawiesiłem). Przyjmijmy, że mam dwie wersje kodu V1 i V2. W V2 to dopisanie kilku linii kodu do V1 w zupełnie innej niezależnej procedurze która ma się nijak na to jak ma działać procedura z A1,A2,A3. Zmienne globalne na 100% nie mogą być gdzieś indziej przypadkowo użyte, gdyż używam pełnych nazw, co też ułatwia mi ich odnajdywanie w kodzie.
Zagadką jest również to, że jak wywalam procedurę(całą) w której dopisałem kod to nadal jest ten sam kwas. Nawet zrobiłem sobie taki prymitywny DEBUGMODE (przykład: locate 1,1 : print A1,A2,A3) i tutaj wyraźnie widać, że A1 świruje jarzębia. Jak mi się uda rozwiązać ten problem to na pewno go opiszę, ale na razie mam w/w te trzy pomysły.

ps. przyszedł mi do głowy jeszcze jeden patent: wyczyszczę wszystkie procedury pozostawię tylko ich nazwy, żeby nie krzyczało "undefined procedure" i będę przeklejał ich kod jedna po drugiej, oczywiście w logicznej kolejności, a nie jak leci. i po każdym takim zabiegu uruchamiał program. wtedy będę miał 100% pewności co daje dupy. Szkoda, że spłodziłem ich 25 pogryzę klawiaturę, ale to się musi wyjaśnić.
[wyróżniony] [#4] Re: Irytujące 'bugi' w AMOSie.

@groovebox, post #3

Problemem może być: stos, za mały bufor na zmienne.
Możesz prosto zdebugować procedurę: wycinasz ją, kopiujesz do nowego projektu i wywołujsz ją zmieniając wartości zmiennych. Ja kiedyś sobie radziłem jeszcze w ten sposób, że po wejściu do procedury program drukował wartości sprawiających problem zmiennych. Czasmi okazywało się, że w wyniku dzielenia liczb całkowitych otrzymywałem zero i program nie działał wg założeń ;)
[#5] Re: Irytujące 'bugi' w AMOSie.

@RAL, post #4

I od tego właśnie zacznę. OK
Dzięki 100krotne!
[#6] Re: Irytujące 'bugi' w AMOSie.

@RAL, post #4

Próbowałem, starałem się... Nawet analizowałem programy Francois Lioneta (wiadomo ;). I usunąłem tą procedurę bo mnie szlag trafił. Napisałem ją od nowa. Optymalnie nawet lepiej wyszła od swojej poprzedniczki. Najważniejsze, że teraz działa :) Nie dowiem się co było przyczyną bo już straciłem cierpliwość.
[#7] Re: Irytujące 'bugi' w AMOSie.

@groovebox, post #6

Może AMOS zapisał błędnie projekt i powstały jakieś "białe znaki", które miały wpływ na to dziwne zachowanie.

Ostatnia aktualizacja: 19.02.2015 08:30:35 przez sanjyuubi
[#8] Re: Irytujące 'bugi' w AMOSie.

@groovebox, post #6

Jeśli możesz wklej tutaj procedurę i frgm skąd jest wywoływana.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem