Nach einigen Recherchen schließe ich schließlich SO meine Frage zu stellen: Was passiert mit Speicher dynamisch zugewiesen von einer gemeinsamen Bibliothek (mit malloc()
oder new
) nach dem Schließen der Bibliothek mit dlclose()
? Das Verhalten, das ich beobachtete, ist, dass jeder Zugriff auf solchen Speicher (Dereferenzierung, unter Verwendung von delete
Operator damit etc.) zu einem Segmentierungsfehler führt. Ist es irgendwo definiert?Zugriff auf Speicher freigegeben durch shared library nach dlclose()
Nun scheint es wie eine dumme Frage, zu fragen, wenn ich dlclose()
wissen anruft, bevor ich mit der Erinnerung wurde die Quelle des Fehlers beendet wurde - unter Verwendung delete
Operator auf einem new
-created Objekt aus einer gemeinsam genutzten Bibliothek erhalten ausgelöst - Ich habe in den letzten paar Tagen dagegen gekämpft, aber ich würde gerne wissen warum, anstatt nur zu raten, falls ich in Zukunft auf eine ähnliche Situation stoße.
Möglicherweise verwandte Fragen: https://stackoverflow.com/questions/31375177/why-might-mallocd-memory-from-a-shared-library-be-inaccessible-to-the-applicati https: // stackoverflow. com/questions/4732018/Was passiert mit der globalen Variablen-in-shared-library-wann-dlclose-ist-aufgerufen-https://stackoverflow.com/questions/36420174/linux-cc-allocate -deallocate-memory-in-dynamic-library – Mael