Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern (https://www.delphipraxis.net/184478-erzeugen-der-rsm-datei-bei-64-bit-programmen-verhindern.html)

BigAl 30. Mär 2015 08:35

Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
Hallo zusammen,

ich nutze Delphi XE6 Pro und habe hier einige 64bit Programme. Sobald ich ein Programm kompiliere wird eine (sehr große) RSM-Datei erzeugt. Laut Online-Hilfe soll diese Datei ja nur erzeugt werden wenn "Externe Symbole" beim Linken auf "True" stehen. Allerdings erzeugt er die bei mir IMMER. Unabhängig der Compiler/Linker-Einstellung. Selbst für die vorgegebene Release-Einstellungen wird die erzeugt.

Mich stört das in sofern, da ich diese - laut Beschreibung - für mich unnötige Datei an sehr vielen Stellen "mitschleifen" muss (Datensicherung etc.).

Wie/Wo lässt sich das abschalten?

Danke und Gruß
Alex

jaenicke 30. Mär 2015 09:46

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
Das funktioniert bei uns problemlos. Offenbar ist da etwas mit den Einstellungen durcheinander gekommen. Hast du die Einstellung für alle Konfigurationen deaktiviert? Wenn du sie jetzt für alle Konfigurationen anschaltest, ist sie dann auch in allen Konfigurationen an, wenn du durchblätterst? (So kannst du prüfen, ob die Vererbung durch die Konfigurationen funktioniert.)

Du kannst die .dproj Datei auch einfach einmal löschen und dann die .dpr öffnen. Du musst dann natürlich alle Einstellungen wieder neu setzen, aber solche Probleme werden dadurch in der Regel behoben.

BigAl 30. Mär 2015 10:20

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
Hallo Sebastian,

vielen Dank für Deine schnelle Antwort. Wenn Du sagst, dass das eigentlich gehen müsste, dann mache ich mich mal auf die Suche. Die Einstellungen aus der IDE habe ich schon alle durch. Die sind sauber. Ist halt ziemlich aufändig, da ich eine Projektgruppe habe, in der 10 Programme erzeugt werden. Habe mir auch schon die Konfiguration mit Ctrl-O-O im Quelltext angeschaut. Auch da gibt es kein "-VR" order so.

Habe mir jetzt mal den Compiler-Aufruf angeschaut:

c:\program files (x86)\embarcadero\studio\14.0\bin\dcc64.exe -$O- -$W+ -$R+ -$Q+ --no-config -M -Q -TX.exe -AGenerics.Collections=System.Generics.Collections; Generics.Defaults=System.Generics.Defaults;WinType s=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes= BDE;DbiProcs=BDE;DbiErrs=BDE -DDEBUG -E.\..\Execute -I"c:\program files (x86)\embarcadero\studio\14.0\lib\Win64\release\DE ";"c:\program files (x86)\embarcadero\studio\14.0\lib\Win64\release";C :\Users\Alex\Documents\Embarcadero\Studio\14.0\Imp orts;"c:\program files (x86)\embarcadero\studio\14.0\Imports";C:\Users\Pu blic\Documents\Embarcadero\Studio\14.0\Dcp\Win64;" c:\program files (x86)\embarcadero\studio\14.0\include";"C:\Program Files (x86)\Devart\SDAC for RAD Studio XE6\Lib\Win64";"C:\Program Files (x86)\Devart\SDAC for RAD Studio XE6\Bin\Win64";"C:\Program Files (x86)\Steema Software\TeeChart 2014 for RAD XE6\Delphi20.win64\Lib";"C:\Program Files (x86)\FastReports\FastReport 5\LibD20x64";"C:\Program Files (x86)\Raize\RC6\Lib\RS-XE6\Win64";"C:\Program Files (x86)\Raize\CS5\Lib\RS-XE6\Win64";"C:\Program Files (x86)\Raize\IX2\Lib\RS-XE6\Win64";"C:\Program Files (x86)\madCollection\madBasic\BDS14\win64";"C:\Prog ram Files (x86)\madCollection\madDisAsm\BDS14\win64";"C:\Pro gram Files (x86)\madCollection\madExcept\BDS14\win64";"C:\Pro gram Files (x86)\madCollection\madExcept\..\Plugins\win64";"C :\Program Files (x86)\madCollection\madSecurity\BDS14\win64" -LEC:\Users\Public\Documents\Embarcadero\Studio\14. 0\Bpl\Win64 -LNC:\Users\Public\Documents\Embarcadero\Studio\14. 0\Dcp\Win64 -NU.\Win64\Debug -NSWinapi;System.Win;Data.Win;Datasnap.Win;Web.Win; Soap.Win;Xml.Win;System;Xml;Data;Datasnap;Web;Soap ;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell; -O"c:\program files (x86)\embarcadero\studio\14.0\lib\Win64\release";C :\Users\Alex\Documents\Embarcadero\Studio\14.0\Imp orts;"c:\program files (x86)\embarcadero\studio\14.0\Imports";C:\Users\Pu blic\Documents\Embarcadero\Studio\14.0\Dcp\Win64;" c:\program files (x86)\embarcadero\studio\14.0\include";"C:\Program Files (x86)\Devart\SDAC for RAD Studio XE6\Lib\Win64";"C:\Program Files (x86)\Devart\SDAC for RAD Studio XE6\Bin\Win64";"C:\Program Files (x86)\Steema Software\TeeChart 2014 for RAD XE6\Delphi20.win64\Lib";"C:\Program Files (x86)\FastReports\FastReport 5\LibD20x64";"C:\Program Files (x86)\Raize\RC6\Lib\RS-XE6\Win64";"C:\Program Files (x86)\Raize\CS5\Lib\RS-XE6\Win64";"C:\Program Files (x86)\Raize\IX2\Lib\RS-XE6\Win64";"C:\Program Files (x86)\madCollection\madBasic\BDS14\win64";"C:\Prog ram Files (x86)\madCollection\madDisAsm\BDS14\win64";"C:\Pro gram Files (x86)\madCollection\madExcept\BDS14\win64";"C:\Pro gram Files (x86)\madCollection\madExcept\..\Plugins\win64";"C :\Program Files (x86)\madCollection\madSecurity\BDS14\win64" -R"c:\program files (x86)\embarcadero\studio\14.0\lib\Win64\release\DE ";"c:\program files (x86)\embarcadero\studio\14.0\lib\Win64\release";C :\Users\Alex\Documents\Embarcadero\Studio\14.0\Imp orts;"c:\program files (x86)\embarcadero\studio\14.0\Imports";C:\Users\Pu blic\Documents\Embarcadero\Studio\14.0\Dcp\Win64;" c:\program files (x86)\embarcadero\studio\14.0\include";"C:\Program Files (x86)\Devart\SDAC for RAD Studio XE6\Lib\Win64";"C:\Program Files (x86)\Devart\SDAC for RAD Studio XE6\Bin\Win64";"C:\Program Files (x86)\Steema Software\TeeChart 2014 for RAD XE6\Delphi20.win64\Lib";"C:\Program Files (x86)\FastReports\FastReport 5\LibD20x64";"C:\Program Files (x86)\Raize\RC6\Lib\RS-XE6\Win64";"C:\Program Files (x86)\Raize\CS5\Lib\RS-XE6\Win64";"C:\Program Files (x86)\Raize\IX2\Lib\RS-XE6\Win64";"C:\Program Files (x86)\madCollection\madBasic\BDS14\win64";"C:\Prog ram Files (x86)\madCollection\madDisAsm\BDS14\win64";"C:\Pro gram Files (x86)\madCollection\madExcept\BDS14\win64";"C:\Pro gram Files (x86)\madCollection\madExcept\..\Plugins\win64";"C :\Program Files (x86)\madCollection\madSecurity\BDS14\win64" -U"c:\program files (x86)\embarcadero\studio\14.0\lib\Win64\release\DE ";"c:\program files (x86)\embarcadero\studio\14.0\lib\Win64\release";C :\Users\Alex\Documents\Embarcadero\Studio\14.0\Imp orts;"c:\program files (x86)\embarcadero\studio\14.0\Imports";C:\Users\Pu blic\Documents\Embarcadero\Studio\14.0\Dcp\Win64;" c:\program files (x86)\embarcadero\studio\14.0\include";"C:\Program Files (x86)\Devart\SDAC for RAD Studio XE6\Lib\Win64";"C:\Program Files (x86)\Devart\SDAC for RAD Studio XE6\Bin\Win64";"C:\Program Files (x86)\Steema Software\TeeChart 2014 for RAD XE6\Delphi20.win64\Lib";"C:\Program Files (x86)\FastReports\FastReport 5\LibD20x64";"C:\Program Files (x86)\Raize\RC6\Lib\RS-XE6\Win64";"C:\Program Files (x86)\Raize\CS5\Lib\RS-XE6\Win64";"C:\Program Files (x86)\Raize\IX2\Lib\RS-XE6\Win64";"C:\Program Files (x86)\madCollection\madBasic\BDS14\win64";"C:\Prog ram Files (x86)\madCollection\madDisAsm\BDS14\win64";"C:\Pro gram Files (x86)\madCollection\madExcept\BDS14\win64";"C:\Pro gram Files (x86)\madCollection\madExcept\..\Plugins\win64";"C :\Program Files (x86)\madCollection\madSecurity\BDS14\win64" -V -VN -VR -NBC:\Users\Public\Documents\Embarcadero\Studio\14. 0\Dcp\Win64 -NHC:\Users\Public\Documents\Embarcadero\Studio\14. 0\hpp -NO.\Win64\Debug femProject.dpr

Da scheint wohl madExcept was einzufügen. Und das, obwohl ich "adjust compiler & linker options" deaktiviert habe. Werde mal das madException komplett deinstallierten. Brauche ich während der Entwicklung eh nicht...

Vielen Dank nochmal

Alex

Sherlock 30. Mär 2015 10:23

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
Die Exception Tracker wie MadExcept und EurekaLog brauchen das. Zumidnest vorübergehend während des Compiles...

Sherlock

himitsu 30. Mär 2015 10:28

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
Datensicherung: Kann eure DS denn keine Dateien ausschließen? :stupid:

Ihr nutzt nicht sowas, wie z.B. Eurekalog? Solche Dinge spielen einfach so gern an den Projekteinstellungen rum.

Der schöne Günther 30. Mär 2015 10:32

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
Der JCL-Experte für JDBG-Dateien auch. Hierbei schaltet der das auf Nachfrage selbstständig ein, die DPROJ-Datei auf der Festplatte ändert sich aber nicht, auch die IDE enabled den "Alle Speichern"-Button nicht.

Ansonsten: Post-Build-Ereignis erstellen für "Alle .rsm-Dateien" löschen ;-)

BigAl 30. Mär 2015 10:34

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
Hallo Sherlock,

Zitat:

Zitat von Sherlock (Beitrag 1295310)
Die Exception Tracker wie MadExcept und EurekaLog brauchen das. Zumidnest vorübergehend während des Compiles...

Sherlock

dachte ich auch. Aber da ich madExcept deaktiviert habe, sollte der auch die Füße still halten. Habe gerade madExcept deinstalliert. Jetzt ist es zumindest so, dass er keine RSM mehr erzeugt wenn ich die Release kompiliere. Sobald beim Linker aber der Schalter "Debug-Information" ein ist, wird die RSM wieder erzeugt. Beim meinem Beispiel erhöht sich die Größe der exe-Datei vom 8 auf 24 MB, die RSM wird mit 40MB erzeugt. Evtl. hat das ja mit der 64-Bit Geschichte was zu tun. Ich bin nur verwirrt, da Embarcader schreibt, dass diese Datei für Remote-Debugging benötigt wird. 32-Bit kann ich leider nicht testen, da alle Programme der Projektgruppe zwingend 64-Bit benötigen.

@Jaenicke: Wird bei Dir die RSM-Datei bei 64-Bit, "Debugger ein" erzeugt?

Alex

BigAl 30. Mär 2015 10:42

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
Hallo Günther,

Zitat:

Zitat von Der schöne Günther (Beitrag 1295313)
Der JCL-Experte für JDBG-Dateien auch. Hierbei schaltet der das auf Nachfrage selbstständig ein, die DPROJ-Datei auf der Festplatte ändert sich aber nicht, auch die IDE enabled den "Alle Speichern"-Button nicht.

Ansonsten: Post-Build-Ereignis erstellen für "Alle .rsm-Dateien" löschen ;-)

das wäre natürlich eine Möglichkeit. Irgendwie müssen wir die SSDs belasten :-). Der interne Debugger braucht die nämlich definitiv nicht. Ich kann auch problemlos debuggen (Breakpoints etc.) wenn die RSM-Datei weg ist.

Gruß
Alex

himitsu 30. Mär 2015 10:44

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
XE7 Win64 erzeugt auch die RSM und das Abschalten einzelner Optionen im Debug-Build hat es bei einigen Tests nicht verhindert.

[edit]
Das Abschalten laut http://docwiki.embarcadero.com/RADSt...SM-Debug-Datei hat definitiv im DEBUG-Profil keine Wirkung.
Im RELEASE ist es dagegen weg. (du könntest die beiden Profile mal vergleichen ... Schritt für Schritt angleichen, bis es irgendwann hoffentlich weg ist und sich merken was man zuletzt umgestellt hat)

Der schöne Günther 30. Mär 2015 10:53

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
"DEBUG" und "Release" sind doch nur Namen. An den Buchstaben wird es nicht liegen, sondern an den Einstellungen die hinter diesen Profilen stecken.

Aber wir können schon festhalten dass diese Einstellung entweder unter
Delphi-Compiler -> Compilieren
oder
Delphi-Compiler -> Linken

stecken muss, oder?

BigAl 30. Mär 2015 10:54

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
Zitat:

Zitat von himitsu (Beitrag 1295319)
XE7 Win64 erzeugt auch die RSM und das Abschalten einzelner Optionen im Debug-Build hat es bei einigen Tests nicht verhindert.

[edit]
Das Abschalten laut http://docwiki.embarcadero.com/RADSt...SM-Debug-Datei hat definitiv im DEBUG-Profil keine Wirkung.
Im RELEASE ist es dagegen weg. (du könntest die beiden Profile mal vergleichen ... Schritt für Schritt angleichen, bis es irgendwann hoffentlich weg ist und sich merken was man zuletzt umgestellt hat)

Hallo Himitsu,

da hatte ich schon gelesen. Dachte, dass das bei XE7 vielleicht jetzt anderst / besser ist. Dort steht halt auch, dass die Datei für lokales Debugging nicht benötigt wird. Ich nutze halt XE6 und sehe im Moment keinen Sinn in XE7. Ich bin es leid für Bug-Fixes zu bezahlen die eh nie kommen. Aber das ist ein anderes Thema...

Danke
Alex

Daniel 30. Mär 2015 10:56

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
Die IDE selbst ein ein 32-bit Prozess. Wenn diese nun einen 64-bit Projekt debuggen soll, ist das eine Form von "Remote-Debugging". Vor diesem Hintergrund wäre ich nicht überrascht, wenn man die RSM-Datei wirklich nur im Release abschalten könnte, denn vermutlich kann nicht einmal die IDE ohne RSM-Datei vollständig Debugger.

//edit: Wird doch nicht benötigt? okay ... wenn es so ist. ;-)

himitsu 30. Mär 2015 11:05

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
Ich hatte halt nur schnell ein XE7 zum Testen da ... vielleicht schaut Daniel mal, ob es in seinem XE8 auch noch so ist.

Hey, dein Problem, nur andersrum ... ihr solltet vielleicht einfach mal tauschen. :stupid:
http://www.delphipraxis.net/143249-r...-erstellt.html

Daniel 30. Mär 2015 11:13

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
Liste der Anhänge anzeigen (Anzahl: 2)
In meinem XE7 kann ich die RSM-Dateien auch für das Debug-Kompilat abschalten. madExcept ist in diesem Delphi zwar installiert, für dieses Projekt jedoch nicht aktiv.
Projekt-Optionen anbei.
Anhang 42811Anhang 42810

BigAl 30. Mär 2015 11:47

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
Zitat:

Zitat von Daniel (Beitrag 1295324)
In meinem XE7 kann ich die RSM-Dateien auch für das Debug-Kompilat abschalten. madExcept ist in diesem Delphi zwar installiert, für dieses Projekt jedoch nicht aktiv.
Projekt-Optionen anbei.
Anhang 42811Anhang 42810

Hallo Daniel,

danke. Aber somit hast Du auch das Debugging getötet :-). Ist zwar das Debug-Profil, jedoch mit Einstellungen für's Release... Bringt also nix.

Alex

Daniel 30. Mär 2015 12:19

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
Zitat:

Zitat von BigAl (Beitrag 1295329)
Aber somit hast Du auch das Debugging getötet :-)

Huch. Wie unangenehm. Ich werde es heute Abend im Schutz der Dunkelheit in die Elbe entsorgen. ;-)
Davon mal abgesehen denke ich, dass die Doku zum Debugger hier nicht präzise ist.

Allgemein zur 64-bit Entwicklung heisst es:
Zitat:

In RAD Studio, Win64 application development is by definition cross-platform development, because the IDE is a Win32 application. This means that when you run an application that has the target platform 64-bit Windows, you are essentially deploying the application to the Win64 platform.
Und damit ist es für mich doch ein Remote-Debugging, was zwingend RSM-Dateien erfordert.

himitsu 30. Mär 2015 13:20

AW: Erzeugen der RSM-Datei bei 64-Bit Programmen verhindern
 
Also wenn die IDE/Debugger irgendwann mal 64 Bit sind (und keine OutOfMemory mehr werfen), dann werden wir das Problem hier nicht mehr haben, aber dafür dann im Win32. :stupid:


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