Einzelnen Beitrag anzeigen

sgmeiner

Registriert seit: 22. Feb 2006
10 Beiträge
 
#6

Re: String-Verlängerung => Delphi-Bug?

  Alt 6. Jul 2006, 09:26
Erstmal danke für die Anregungen. Bin leider noch nicht viel weiter gekommen.

Hab das jetzt nochmal mit einer temporären Variable ausprobiert, wie mkinzler das vorgeschlagen hat. Das Ergebnis ist genau das gleiche. Vielleicht sollte ich nochmal erklären, was die Prozedur macht, in der die AV (write of address 0x00000001) auftritt:

Es handelt sich dabei um eine Tokenizer-Funktion, die das nächste Token für Strings in Anführungszeichen aller Art liefert. Dabei wird immer ein Zeichen aus einem Stream gelesen (ReadChar, siehe Code) und überprüft, ob es mit dem ersten gelesenen übereinstimmt, was ja dann bedeuten würde, dass das Token fertig gelesen ist.

Gut ich hab meine Abfrage mal so umgebaut, dass betreffende Token nicht vorkommt. Achtung, jetzt kommts: bleibe ich unter einer bestimmten "kritischen" Grenze was die Stringlänge betrifft läuft diese Funktion durch, die AV kommt an einer anderen Stelle (andere Funktion, andere String-Variable, beim Aufruf von AnsiUpperCase(CurrentValue), auch wieder Access Violation mit write of address 0x00000001). Es scheint hier wirklich um die Menge der im Speicher für den String reservierten Zeichen zu gehen...

Stichwort Heap-Overflow vielleicht???

Nachtrag: Hab FastMM4 ausprobiert - Absturz bei FastFreeMem während versucht wird das (oder den / die???) Lock aufzuheben. ebx soll wohl eine Referenz auf TSmallBlockType enthalten, enthält aber den Wert 1.
  Mit Zitat antworten Zitat