Der Debugger wird nicht durch Einheiten Schritt, der nicht Debug-Informationen haben, so das Ziel der Compiler Debug-Informationen zu machen ist, weglassen von den Einheiten, die Sie nicht interessieren.
deine Bibliothek Einheiten in ein separates Bibliotheksprojekt. Das gibt Ihnen die Möglichkeit, separate Kompilierungseinstellungen für diese Einheiten zu erstellen, ohne dass sich Ihr Ihr Projekt. Kompilieren Sie die Bibliothek, ohne dass Debuginformationen aktiviert sind. Entfernen Sie dann diese Bibliothekseinheiten aus Ihrem Projekt. Sie können sie weiterhin verwenden, aber sie gehören nicht mehr zu Ihrem Projekt. Ein wichtiger Aspekt hier ist, dass die DCUs in einem separaten Verzeichnis aus dem Quellcode befinden sollten. Wenn der Compiler DCUs findet und der Quellcode im selben Ordner angezeigt wird, ist es wahrscheinlich, dass dieser Code neu kompiliert wird, wenn Sie es nicht wirklich wollen. Stellen Sie den "DCU-Ausgabeordner" Ihres Projekts auf etwas anderes als das Standardverzeichnis ein.
Um es wirklich richtig zu machen, können Sie tun, was die VCL tut und zwei verschiedene Versionen Ihrer Bibliotheken kompilieren. Kompilieren Sie einen mit Debug-Informationen und einen ohne und legen Sie die kompilierten Dateien in verschiedenen Verzeichnissen ab. Fügen Sie das Verzeichnis mit den Debug-Versionen zu Ihrer Delphi-Konfiguration hinzu; Dort sollte bereits ein Ordner aufgeführt sein, der die von Delphi bereitgestellten Debug-DCUs enthält.
Wenn Sie zwei verschiedene Versionen einrichten, können Sie wählen, ob Sie in den Bibliothekscode einsteigen möchten. Schalten Sie einfach die Option Debug-DCUs verwenden in Ihren Projekteinstellungen ein. Delphi fügt automatisch den Debug-Versionsordner aus dem Suchpfad hinzu und entfernt ihn, wenn Sie diese Einstellung ändern.
Beachten Sie, dass, auch wenn Sie eine separate Bibliothek-Projekt für Ihre Bibliothek Einheiten haben werden, Sie brauchen sich nicht zu verknüpfen oder die DLL oder Paket zu verteilen, die das Projekt generiert. Sie können die DCU-Dateien weiterhin direkt in Ihrem EXE-Projekt verwenden. Sie richten nur das separate Projekt ein, sodass Sie für diese Einheiten verschiedene Kompilierungseinstellungen auswählen können. Fügen Sie den DCU-Ausgabeordner des Bibliotheksprojekts dem Suchpfad Ihres EXE-Projekts hinzu, und Sie können die Einheiten direkt weiter verwenden, ohne die DLL oder das Paket des Bibliotheksprojekts verteilen zu müssen.
Die IDE versucht möglicherweise, dem Suchpfad automatisch neue Verzeichnisse hinzuzufügen. Stehen Sie nicht dafür ein. Wenn dort ein Quellverzeichnis vorhanden ist, das die IDE für Sie hinzugefügt hat und Sie es nicht dort haben wollen, können Sie es gerne entfernen. Die IDE versucht nur, hilfreich zu sein, aber sie weiß nicht, ob Sie getrennte Quell- und kompilierte Ordner haben möchten.
Danke, Rob - das ist sehr hilfreich. Momentan sind die Bibliotheken nicht im Projekt enthalten, es sind einfach BPLs, die über "Komponenten-> Pakete installieren ..." direkt zu Delphi hinzugefügt wurden. Ich habe jedoch mein bin/packages-Verzeichnis überprüft und gefunden Die Quelldateien befinden sich tatsächlich zusammen mit den DCUs in Unterordnern. Ich werde versuchen, was Sie vorschlagen und sehen, ob ich es nicht vernünftig Verhalten kann. Danke, ich wünschte, ich könnte dir ein Bier kaufen! –
Ich habe gerade meine zweideutige Verwendung von "included" in der ursprünglichen Post bemerkt - ich hätte sagen sollen, dass diese nur in dem Umfang enthalten waren, in dem sie in den "Uses" -Abschnitten meiner Einheiten referenziert wurden und nicht, dass ich das physisch festhielt Quellen in meinem Projekt. Genauso, ich denke, es waren tatsächlich die Streunerquellen in dem Bin-Ordner, die Delphi aus der Unterwelt grub, um sie zu durchforsten. Ich muss diesen an einer kurzen Leine behalten, was? –