![]() |
AW: kniffliges Rätsel - Compileroptimierung
Bei
Delphi-Quellcode:
mit Anweisung in nächster Zeile sind die "blauen Punkte" oft nicht als Haltepunkt zu gebrauchen, weil sie komplett in der ersten Zeile arbeiten, das ist schon ewig so.
if then
Bemängeln würde ich dies nicht, weil spätestens beim QA-Audit das
Delphi-Quellcode:
zu einem
if x then dosomething;
Delphi-Quellcode:
würde/sollte (und das funktioniert bei mir im Debugger immer).
if x then begin dosomething; end;
Zumindest bei uns ist das Pflicht, und ich glaube die QA-Audits, die Delphi anbietet (evtl. erst ab der Enterprise? bei mir sind die Menüpunkte gerade ausgegraut, verwende aber auch nur noch die Pro), bemängeln ein
Delphi-Quellcode:
ohne
if then
Delphi-Quellcode:
ebenfalls.
begin end;
|
AW: kniffliges Rätsel - Compileroptimierung
Zitat:
Delphi-Quellcode:
gibt es auch keine blauen Punkte ;)
if foo then
begin Exit; end; |
AW: kniffliges Rätsel - Compileroptimierung
Liste der Anhänge anzeigen (Anzahl: 1)
Hmmm interessant! Das scheint ein wenig vom Kontext abhängig. Siehe Anhang.
|
AW: kniffliges Rätsel - Compileroptimierung
Moin... 8-)
Schön, daß ihr die Zeit findet Euch damit zu beschäftigen. :thumb: Interessant ist das Thema allemal. Wenn man nicht explizit drauf achtet ist mal schnell was wegoptimiert von dem man ausgeht (logischerweise) daß es funktioniert... wer achtet schon wirklich auf die blauen Punkte :zwinker: Der Knackpunkt liegt ja hier:
Delphi-Quellcode:
zu:
function bla: Boolean
begin Result:= False for i = 0 to 10 do begin if blabla then begin WriteLn; exit; end; if blabla1 then begin WriteLn; exit; // wird eincompiliert end; end; Result:= True; end
Delphi-Quellcode:
...das kann wahrscheinlich nur der Programmierer der Optimierung des Compilers beantworten. :zwinker:function bla: Boolean begin Result:= False for i = 0 to 10 do begin if blabla then begin WriteLn; exit; end; if blabla1 then begin exit; // wird nicht eincompiliert end; end; Result:= True; end |
AW: kniffliges Rätsel - Compileroptimierung
Es geht auch ohne das
Delphi-Quellcode:
, z.B. mit einem expliziten Returnwert.
WriteLn
Delphi-Quellcode:
Oder sobald Exception-Handling in's Spiel kommt:
function bla: Boolean;
begin Result := false; for i := 1 to 10 do begin if i = 5 then begin Exit; end; if foo then begin Exit(false); // hier gibt es eine Haltpunktmöglichkeit end; end; Result := true; end;
Delphi-Quellcode:
So oder so, wegoptimiert ist der Code nicht, sondern lediglich im Debugger nicht als Breakpoint verwendbar.
function bla: Boolean;
begin Result := false; try for i := 1 to 10 do begin if i = 5 then begin Exit; end; if foo then begin Exit; // hier gibt es eine Haltpunktmöglichkeit end; end; Result := true; except Result := false; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz