Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   FMX Android64 - Problem mit Haltepunkten (https://www.delphipraxis.net/207991-fmx-android64-problem-mit-haltepunkten.html)

Michael II 25. Mai 2021 18:13

FMX Android64 - Problem mit Haltepunkten
 
FMX - Mir ist beim Debuggen von DEC aufgefallen, dass Breakpoints bei meinem D10.4.2 unter Android64 nicht so funktionieren wie ich es erwarte. Ich habe nun ein Minimalprojekt erstellt.

Ich setze im Code unten in der Zeile label1.Text einen Haltepunkt mit "Bedingung nr=11". Ich starte das Programm und klicke auf Button1. In der App wird bei Label1 "11" (!) angezeigt. Ich erwarte "7".

Ich ändere die Haltepunkt Bedingung auf nr=7 und klicke Button1. Delphi hält beim Haltepunkt nicht an.

Delphi-Quellcode:
procedure TForm104.test( nr : integer );
begin
    label1.Text := nr.ToString;
end;

procedure TForm104.Button1Click(Sender: TObject);
begin
  test( 7 );
end;
Und wenn ich unter Haltepunkt Bedingung nR=11 schreibe und den Button drücke, dann wird angezeigt "Ungültige Bedingung für Haltepunkt: nR=11. Fehlermeldung: error: use of undeclared identifier 'nR' error: 1 errors parsing expression". Mit letzterem kann ich gut leben. Offenbar muss ich bei Android auf Gross-/Kleinschreibung achten.

Ist meine Delphi Installation vermurkst oder stimmt da momentan was nicht?

Unter Windows klappt es wie erwartet.

himitsu 25. Mai 2021 18:21

AW: FMX Android64 - Problem mit Haltepunkten
 
Kann sein, dass Android Xcode case-sensitiv ist ... dann passt das Verhalten mit nR schon irgendwie,
auch wenn es für Delphi eigentlich "ungewöhnlich" ist.

bei nr=11 kann es nicht anhalten.
Was steht denn ohne den Haltepunkt im Label?

Geht ein doppeltes == ?
Delphi-Quellcode:
nr==11

Xcode ist ja mehr c-ig. :stupid:

TurboMagic 25. Mai 2021 19:24

AW: FMX Android64 - Problem mit Haltepunkten
 
Seit wann ist XCode für Android? ;-)
Unter Android wird m.W. noch der GDB als Debugger benutzt.

Michael II 25. Mai 2021 19:39

AW: FMX Android64 - Problem mit Haltepunkten
 
Hoi himitsu

danke für deine rasche Reaktion.

Ich nehme immer den gleichen Code (siehe #1).

Ohne Haltepunkt: Ich drücke den Button1, test(7) wird aufgerufen und in der App lese ich dann tatsächlich auch 7 (wie erwartet).

Mit Haltepunkt mit Bedingung nr=11. Wenn ich jetzt den Button drücke, wird ja wieder test(7) aufgerufen und ich erwarte (natürlich nicht, dass angehalten wird, da ja 7<>11 ;-), aber) dass ich in der App wiederum 7 angezeigt erhalte. Es steht aber jetzt 11 da. Die Haltepunkt Bedingung nr=11 wird quasi als "Wert 11 für nr übernehmen" interpretiert. Das ist doch ein Bug?

Du hast Recht. Setze ich als Haltepunktbedingung nr==11 bzw. nr==7 klappt es unter Androd64 wie erwartet. BESTEN DANK!:thumb:

Kompiliere ich nun mit Windows, wird natürlich eine Fehlermeldung angezeigt: Ungültige Bedingung für Haltepunkt: nr==7. Fehlermeldung: E2029 Ausdruck erwartet, aber '=' gefunden".

D.h. man kann offenbar bei FMX Projekten für Android und Windows nicht die gleiche Syntax für Haltepunkte verwenden; es gibt sicher Gründe dafür.

himitsu 25. Mai 2021 20:25

AW: FMX Android64 - Problem mit Haltepunkten
 
Ja, verwechselt. Xcode war für Apple :oops:

Java-irgendwas im Android, aber ist ja auch so c-ig :lol:


Zitat:

Zitat von Michael II (Beitrag 1490122)
Du hast Recht. Setze ich als Haltepunktbedingung nr==11 bzw. nr==7 klappt es unter Androd64 wie erwartet. BESTEN DANK!:thumb:

Also nutzt der Debugger die C-Syntax.

Da muß Embarcadero wohl mal was reparieren (übersetzen: Delphi<->C++).


Von PHP kenn ich auch noch sowas, wo bei
Delphi-Quellcode:
if (i = 3) {
nicht verglichen, sondern zugewiesen wird. :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz