Mittlerweile
gelöst.
Ich habe eine Gegenfrage, welche sicher jemand (unabhängig von
DEC Kenntnissen) beantworten kann.
Ich halte das hier Beschriebene für einen heftigen Bug. Vielleicht bin ich aber auch einfach viel zu "Android unerfahren" und mache was falsch.
Ich wollte die Benchmark App (\
DEC\Demos\HashBenchmark_FMXHashBenchmark.dproj) von
DEC unter Android 64 debuggen und habe einen Haltepunkt gesetzt in procedure TFormMain.RunBenchmark Zeile FStopwatch.Reset; (Code unten) Bedingung rowindex=19. (Ich habe also "rowindex" klein geschrieben.)
Delphi-Quellcode:
procedure TFormMain.RunBenchmark(ClassName: string; RowIndex: Integer);
var
Hash : TDECHash;
HashResult : TBytes;
i : Integer;
begin
Hash := TDECHash.ClassByName(ClassName).Create;
try
FStopwatch.Reset;
Wenn das Programm das erste Mal bei diesem Haltepunkt durchläuft, dann wird mir diese Fehlermeldung angezeigt:
[Window Title]
Fehler
[Content]
Ungültige Bedingung für Haltepunkt: rowindex = 19. Fehlermeldung: error: use of undeclared identifier 'rowindex'
error: 1 errors parsing expression
[OK]
Debuggen unter Windows funktioniert wie erwartet: Es wird beim Erreichen von rowindex=19 angehalten.
So weit so schlecht. Also denke ich, ich muss Gross- und Kleinschreibung beachten. Da unter Haltepunkt bereits rowindex=19 bekannt ist, nimmt's meinen "neuen" Haltepunkt RowIndex=19 nicht an (schade). Die Fehlermeldung bleibt.
Also teste ich halt mit RowIndex=18. Unter Windows läuft's wiederum wie erwartet.
Unter Android64: Jetzt wird
kein Fehler mehr angezeigt. Aber jetzt hat der Haltepunkt RowIndex=18 Einfluss aufs Programm (!).
Weiter unten in der gleichen Prozedur wird ein Wert in sg_Results.Cells[1, RowIndex] (TStringGrid) geschrieben.
Delphi-Quellcode:
sg_Results.Cells[1, RowIndex] :=
Format('%0:f', [cIterations / (FStopwatch.ElapsedMilliseconds/1000)]);
sg_Results.Cells[2, RowIndex] := FStopwatch.Elapsed.ToString;
Rate mal,
wo reingeschrieben wird.
Alle Ausgaben werden nach sg_Results.Cells[1, 18] "umgeleitet".
Die Haltepunkt Bedingung RowCount=18 bewirkt also unter Android, dass im Programm RowCount:=18 gesetzt wird.
Jede Hilfe wird geschätzt
. Danke.
Mittlerweile
gelöst.