Out of Memory Meldung
-
Hallo C-Gemeinde,
ich habe eine 32Bit IDE zu laufen, die mir beim Linken eine "Out of Memory" Meldung erscheinen lässt, schaue ich mir in dem Moment mit dem Ressourcenmonitor den verwendeten Arbeitsspeicher an, komme ich gerade mal auf 320MB also weit entfernt von der 4GB Grenze. Die Sourcen besteht aus etlichen 10.000-Zeilen Code.
Wie kann ich vorgehen, um das Problem zu lösen?
Gruß
-
Die Fehlermeldung bekomme ich auch rein nur beim Compilieren der Sourcen. Aber das auch nicht jedes Mal.
-
Welche IDE ist das genau?
Wie lautet die Meldung genau (Copy+Paste bitte)?
-
NI/CVI 5.5.1
in folgendem Fall kommt es zur Meldung:
1. "mark all for compilation"
2. "create debuggable executable"
nach dem Compilieren erscheint dann folgendes Fensterhttps://image.ibb.co/mho59S/Unbenannt0.jpg
dann nochmal
3. "mark all for compilation"
jetzt erscheint die Meldung Out of Memory beim Compilierenhttps://image.ibb.co/mg46G7/Unbenannt.jpg
Ich bin auf folgendes gestoßen:
https://forums.ni.com/t5/LabWindows-CVI/quot-Run-debuger-configuration-quot-in-CVI-5-5-causes-reboot-the/td-p/19029in dem Projekt befinden sich unglaublich viele globale und statische Variablen, grob geschätzt weit über 100.000
-
sorry, nach 3. natürlich 4. "create debuggable executable" gedrückt
-
Ich habe jetzt eine ganze Reihe von globalen Variablen, ein paar Sourcen entfernt und schon lässt es sich mehrmals ohne jegliche Fehlermeldungen compilieren und linken.
War das jetzt ein internes CVI Problem, jemand eine Idee?
-
Ich nehme an dass der Fehler bei 3&4 nur ein Folgefehler von dem Fehler bei Schritt 1&2 ist. Ob das stimmt könntest du verifizieren wenn du zwischen 1&2 und 3&4 alle generierten Files (Object Files etc.) löscht ("clean").
Wenn dann immer die selbe Fehlermeldung kommt, dann war das "out of memory" vermutlich ein Folgefehler. Und hat dann vermutlich nichts mit "zu wenig Speicher" zu tun, sondern damit dass versucht wurde defekte Files die bei Schritt 1&2 erzeugt wurden verwenden/weiterzuverarbeiten.
Die von dir verwendete IDE kenne ich leider nicht. Ich kann mir aber schon vorstellen dass es etliche Compiler oder Linker gibt die bei 100.000 globalen Variablen/Symbolen aussteigen. Die aktuellen Versionen der "grossen" Compiler (GCC, Clang, MSVC, Intel, ...) schaffen sowas locker, aber gerade ältere Compiler für Mikrocontroller/Embedded Systems können mit sowas schonmal Probleme bekommen.