Zitat von
stoxx:
Wo ist die Variable dann hin, und warum kann der Debugger das manchmal nicht anzeigen da?
Der Compiler optimiert deinen Code. Deine lokalen Variablen legt er im Normalfall auf dem Stack an. Diesen Speicherbereich kann der Debugger berechnen und somit drauf zugreifen. Wenn der Compiler aber nun optimiert und feststellt, dass du für den PChar die 4 Bytes für dessen Adresse bei dem einen Aufruf holst und dann ein paar Opcodes schon das letzte mal verwendest, dann optimiert er es so um, dass er erst gar kein Speicherplatz auf dem Stack dafür anlegt (Speicherzugriff muss adressiert werden und macht ein wenig Aufwand) sondern einfach den PChar in einem freien Register behält. Damit ist der Code schneller (optimiert), dafür weiss der Debugger aber nicht, wo (bzw. in welchen Register, etc) sich diese Variable gerade befindet.