habe in einem größeren Programm immer wieder Probleme beim Anzeigen von lokalen Variablen-Werten , wenn ich Debugge und Haltepunkte setzte.
Betrifft meist Unterprograme wie dieses hier
Code: Alles auswählen
// Berechnet den Geschwindigkeitsvektor des Wirbelstückes
// A->B mit der Zirkulationsstärke gamma im Aufpunkt P
function biot_savart(gamma:double;Vek_A,Vek_B,Vek_P:punkt3d):punkt3d;
var r0, // Abstandsvektor B-A
r1, // Abstandsvektor P-A
r2, // Abstandsvektor P-B
Q_Vek_P // induzierter Geschwindgkeitsvektor im Aufpunkt
:punkt3d;
B,Bo,D:punkt3d;
Bu,A,C,C1,C2:double;
begin
// Berechnung der Abstandsvektoren zwischen den Punkten
// Abstandsvektor B-A
r0:=SubVectors(Vek_B,Vek_A);
// Abstandsvektor P-A
r1:=SubVectors(Vek_P,Vek_A);
// Abstandsvektor P-B
r2:=SubVectors(Vek_p,Vek_B);
A:=gamma/4/pi; // Gamma mit Faktor 1/(4*pi) verrechnen
Bo:=Cross(r1,r2);
Bu:=Vektorbetrag(Cross(r1,r2))*
Vektorbetrag(Cross(r1,r2));
B:=ScaleVector(Bo,1/Bu);
C1:=Dot(r0,r1)/Vektorbetrag(r1);
C2:=Dot(r0,r2)/Vektorbetrag(r2);
C:=C1-C2;
D:=ScaleVector(B,A);
Q_Vek_P:=ScaleVector(D,C);
result:=Q_Vek_P;
end; // <---- hier einen Haltepunkt
Hier ein Bild vom Debugg-Fenster-Lokale-Variablen Alle Variablen , die im Bild mit "Failed to read data from register" gekennzeichnet sind lassen sich auch im Quellcode nicht anzeigen.
Die übrigen Variablen schon.
Was kann das für ein Problem sein ?
Die Berechnungs-Ergebnisse der Routine sind völlig OK .
Ich habe auch versucht , ein neues Minimal-Projekt mit der Funktion oben zu bauen , aber da tritt das Problem dummerweise nicht auf.
In dem Großprogramm stecken ja tausende Variablen , ist der Debugger damit überfordert ?
Meine Laz-Version :
Lazarus 2.2.4 (rev lazarus_2_2_4-0-g06a78ed923) FPC 3.2.2 x86_64-win64-win32/win64
Gruß
Frank