Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: Debugger von Delphi XE x lügt

  Alt 13. Mär 2015, 19:36
Genau das.

Delphi kann hier nicht "prüfen", ob in dem Funktionsaufruf etwas verändert wird ... grundsätzlich kann das passieren, also ist es standardmäßig aus.


PS: Einmal ohne Debugger ausführen
und dann nochmal im Debugger (Haltpunkt + F8), mit DoCount in den überwachten Ausdrücken (Mal mit und mal ohne Seiteneffekte).
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    ...
    procedure FormCreate(Sender: TObject);
  private
    FCount: Integer;
    function DoCount: Integer;
  end;

function TForm1.DoCount: Integer;
begin
  Inc(FCount);
  Result := FCount;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FCount := 0; // <<< Haltepunkt und dann weiter mit F8
  ShowMessage(IntToStr(DoCount));
  ShowMessage(IntToStr(DoCount));
  ShowMessage(IntToStr(DoCount));
end;
$2B or not $2B
  Mit Zitat antworten Zitat