Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1175 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  dlclose et gestion mémoire => segfault

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

dlclose et gestion mémoire => segfault

n°2010639
seal3
Posté le 21-07-2010 à 13:47:56  profilanswer
 

Bonjour à tous.
 
Depuis peu de temps je travaille sur la gestion des librairies .so en vue de faire un projet perso.
 
Je suis sous linux (ssh gcc débian) et j'ai fais un petit programme qui se termine par un segfault. J'explique :
 
J'ai mon programme principal X qui charge une lib.so Y. Sur cette lib Y j'ai juste mis en extern "C" une fonction d'initialisation que mon programme principal appelle en y passant en argument un pointeur vers un objet (classe). Cette classe est compilée à la fois dans le programme principal et à la fois dans la lib. Les deux ont donc la même.
 
Ma lib appelle une méthode de l'objet (créé par le programme principal). Cette méthode instancie dynamiquement (new ...()) et met en mémoire des données.
 
je fais un dlclose() de la lib. Si mon programme fait un delete sur l'objet créé j'ai droit à un segfaut. Si je fais pas le dlclose() ça marche.
 
Je cherche donc à comprendre pourquoi.  
 
Pour moi si ma lib alloue de la mémoire avec un new, cette mémoire devrait toujours rester accessible même si je fais un dlclose. J'ai l'impression que le fait que ce soit ma lib qui appelle la methode de la classe, alloue la mémoire dans une partie qui devient innaccessible une fois le dlclose() fait.
 
Existe il une solution ? Ma méthode de travail n'est ptet pas la bonne.
 
Merci à tous de votre aide.

mood
Publicité
Posté le 21-07-2010 à 13:47:56  profilanswer
 

n°2010818
seal3
Posté le 21-07-2010 à 17:46:41  profilanswer
 

Je me répond à moi même.
 
Visiblement c'est un mot clé virtual devant un destructeur qui fait crasher quand on fait un delete. Surement à cause de la table de liaison.  
 
Je vérouille pas si certains ont plus d'infos.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  dlclose et gestion mémoire => segfault

 

Sujets relatifs
Taille mémoire d'un objetGéstion d'une base de donnée
EBP gestion commerciale ODBCPb avec la gestion des cellules...
programmation mémoire à picquestions très précises MySQL (gestion de cache et autres)
[Objective-C] Gestion de la mémoire 
Plus de sujets relatifs à : dlclose et gestion mémoire => segfault


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR