Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Keine Debuginfos für "eine" Funktion oder Codezeile ? (https://www.delphipraxis.net/214994-keine-debuginfos-fuer-eine-funktion-oder-codezeile.html)

himitsu 18. Apr 2024 19:29

Delphi-Version: 12 Athens

Keine Debuginfos für "eine" Funktion oder Codezeile ?
 
N'abend,

warum kann man die Debuginfos nicht nur für eine Funktion abschalten? (bzw. wenn doch, wie?)

Ich hab in einer Unit, in einer Klasse ein paar kleine Hilfsfunktionen, welche oft nichts machen, außer in einer Schleife etwas zu suchen, und da wäre es doch zu praktisch, wenn ich beim Debuggen des restlichen Codes, dort nicht ständig drin landen würde.
(ja, F8, aber in andere Funktionen will ich ja rein ... nur da eben nicht ... ist auch zu anstrengend ständig zwischen F7 und F8 entscheiden zu müssen)

Prinzipiell denk ich mir, es kann doch nicht so schwer sein, diese eine/paar Zeilen aus der Liste der Codezeilen+Adressen einfach wegzulassen.


Delphi-Quellcode:
...
{$DEBUGINFO OFF}
hier nicht
{$IFDEF _DEBUGINFO_} {$DEBUGINFO ON} {$ENDIF}
...
und ganz oben noch ein
Delphi-Quellcode:
{$IFOPT D+} {$DEFINE _DEBUGINFO_} {$ELSE} {$UNDEF _DEBUGINFO_} {$ENDIF}
.

Egal was man macht, es zählt immer nur die letzte Angabe, für die komplette Unit.

Leider ist es in der Hilfe oft nicht ersichtlich, welche Reichweite die einzelnen Compileroptionen besitzen.
* Einige wirken ab da, wo sie definiert wurden, bis zum Ende der Unit (oder bis zur nächsten Angabe)
* bei Einigen wirkt sich die letzte Angabe ab Ende der aktuellen Codezeile bis zum Ende aus
* Manche werden, wie hier erst am Ende der Unit nur für diese Unit ausgewertet
* Anderes wirkt über das komplette Programm und die letzte Angabe wird dann für das Programm verwendet, z.B. ob die eventuell vorhandenen DebugInfos dann ins Kompilat gelinkt oder doch verworfen werden, oder z.B. die BaseAdresse, StackSize, LibSuffix usw.
* ...

Außerdem sind die dort angegebenen DEFAULTs leider auch nicht mehr ganz "korrekt".
z.B. steht da, dass die Überlaufprüfung standardmäßig OFF ist, was aber nur für die DPR gilt (direkt an den DCC übergeben), aber nicht die Projektionen (DPROJ),
allerdings ist standardmäßig die Debug-Config aktiv und dort ist inzwischen diese Option nunmal standardmäßig ON. :freak:

z.B. funktioniert hier nur das Erste, wie gewollt:
Delphi-Quellcode:
{$OVERFLOWCHECKS OFF} 
i := i * 123;
{$OVERFLOWCHECKS ON}
Delphi-Quellcode:
{$OVERFLOWCHECKS OFF} 
i := i * 123
{$OVERFLOWCHECKS ON} 
;

TurboMagic 19. Apr 2024 08:18

AW: Keine Debuginfos für "eine" Funktion oder Codezeile ?
 
Ich hab' da mal was für dich gemacht:
https://embt.atlassian.net/servicede...rtal/1/RSS-700

Grüße
TurboMagic


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:57 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