[Allegro] a99/alcarta Absturz bei bestimmten Suchbefehlen

Bernhard Eversberg ev at biblio.tu-bs.de
Mi Nov 23 10:04:46 CET 2005


a99/alcarta: Absturz bei bestimmten Suchbefehlen

Normalanwender sind nicht betroffen, sondern nur solche, die
gelegentlich einen Suchbefehl mit der Hand eingeben. Wer mit
"Fernglas" und Index arbeitet, hat kein Problem und keinen
Handlungsbedarf!

Endlich ausgemerzt werden konnte ein seit langem immer mal wieder
auftretendes Problem beim Suchen:
Betroffen sind Suchbefehle der Form

reg X and Y

wobei reg ein beliebiger Registername ist, X ein beliebiger geeigneter
Suchbegriff und Y ein weiterer mit genau 4 Zeichen Länge.
Besonders auf XP kommt es dann zum Absturz, auf '98 dagegen nicht.
avanti ist vermutlich auch manchmal betroffen.

Glatt geht es jedoch, wenn man schreibt:

reg X and reg Y

was eigentlich bei avanti normalerweise auch gemacht wird, und auch
dann, wenn man das Fernglas-Menü von a99/alcarta benutzt. Daher fiel
der Fehler wohl nur sehr selten auf.

Wir sind, kurz gesagt, endlich dahintergekommen. Bei der Auswertung
des Suchbefehls wird intern ein Puffer dafür dynamisch zugewiesen,
je nach seiner aktuellen Länge. Leider etwas zu kurz, denn in den
fraglichen Fällen muß intern der Registername  reg  noch 
zwischengeschoben werden. Ob sich das auswirkt, hängt dann ganz
von Inhalt und Anordnung der Daten im internen Speicher ab, das
ist unvorhersehbar. Bei XP und manchen LinuX/UNIX-Plattformen
ist es wohl meistens der Fall.

Das Unterprogramm war schon alt (Kollege Veltkamp hatte es vor Jahren
programmiert), daher war die Fehlersuche nicht ganz einfach. Doch
nun konnte das Problem an der Wurzel gepackt werden. Alle Tests
verliefen jetzt fehlerfrei. Veltkamp hatte, wie wir uns jetzt
erinnern, sehr strikte Vorstellungen, insbes. wollte er Befehle
der bewußten Art (Weglassung des zweiten reg) eigentlich gar nicht
zulassen. Damit hängt die Sache wohl zusammen.

a99.lzh und alcarta.lzh liegen bereit, avanti wird bei nächster
Gelegenheit auch mal wieder erneuert.

MfG B.E.



Mehr Informationen über die Mailingliste Allegro