Sagen wir es mal so: In einigen Delphis wurde vergessen der Speicher, wo diese Konstanten liegen, schreibgeschützt zu laden.
Es gibt mehrere Tools (teilweise auch FastMM), welche beim Suchen helfen.
Was du aber selber ganz einfach machen kannst.
Delphi-Quellcode:
if Assigned(generatorFunc) then
begin
S := 'regenerating ';
Log.DPrintf(S + imgName + '.' + sLineBreak);
Erstmal schauen, ob der Fehler nun immernoch dort liegt.
Dann bis zu dem String gehn und
Pointer(S)
in die überwachten Variablen und dir den Wert kopieren.
Nun
string(derWert)
in überwachten Variablen.
Jetzt kannst du gemütlich rumdebuggen und schauen wann und wo sich dieser String verändert.
[edit]
Zitat:
auskommentiert um zu testen ob dies die Ursache ist
Theoretisch ja, aber man muß beachten, daß sich dabei Adressen verschieben können, da sich ja der Code verändert hat, womit dann der Fehler einfach nur woanders hingewandert sein kann.
- entweder ist da wirklich der Fehler drin und nun ist er weg
- oder es wird eventuell nur etwas Anderes überschrieben (bzw. es knallt, weil diese neue Stelle nicht überschreibbar ist)