Segfault sur contructeur de string
Bonjour,
c'est un peu découragé que je poste (après avoir passé des heures là dessus), en espérant que quelqu'un voit le problème (qui doit être évident ...).
Bon, j'ai un petit programme avec plusieurs threads (pour l'heure deux, mais le deuxième thread n'a pas le temps de démarrer), dont les fonctions "main" sont placées dans des libraries différentes.
Le chargement des lib, et des symboles de fonctions se passe bien, et j'ai le temps d'appeler la fonction init de la première lib.
À l'appel de la fonction start de la première lib, j'ai droit à un segfault ici :
Code:
datas->log.setLogName("spv-numeroteur");
avec comme sortie de valgrind :
Code:
1 2 3 4 5 6 7
| Process terminating with default action of signal 11 (SIGSEGV)
Access not within mapped region at address 0xFFFFFFF4
at 0x4234E58: std::string::assign(char const*, unsigned) (in /usr/lib/libstdc++.so.6.0.9)
by 0x4234FC4: std::string::operator=(char const*) (in usr/lib/libstdc++.so.6.0.9)
by 0x805E0FF: Log::setLogName(char const*) (Log.hpp:143)
by 0x5193D1B: init (main.cpp:36)
by 0x805DC87: main (main.cpp:104) |
il semble donc que le programme plante sur la chaîne "spv-numeroteur" ?!?
Que nenni, me disant que j'ai fait déborder la pile, je fais de braves new pour toutes mes variables, mais rien n'y fait.
Que nenni, je stocke cette chaîne dans une variable qui a été allouée auparavent, mais le programme plante alors plus loin sur le prochain appel du type :
Code:
mafonction("une chaine statique");
fonction dans laquelle il y a une conversion de char * vers une string.
Sniff, quelqu'un aurait-il une idée ?
P.S.:
libairies : STL, Boost, dl
plateforme : linux 2.6.17
glibc : 2.6-2
P.P.S :
si je n'ai pas posté dans le bon forum, n'hésitez pas à le signalez (j'ai un peu hésiter :-p)
Mouaip mouaip je progresse
avec aussi peu de code, quelque chose m'a sauté aux yeux :
j'ai défini deux structures (une dans la lib, l'autre dans le programme principal) qui porte le même nom (à priori pas gênant, non ?).
Et bien en renommant l'une des deux structures j'ai plus d'alerte de valgrind !
Je n'ai pas le temps (je ferais cela ce week end) de modifier l'appli original pour voir ce que cela donne (je dois absolument avancer et je peux le faire avec un petit bout de code déjà fait).
Mais je pense que c'est une bonne piste !
Quelqu'un a une idée du sous-forum dans lequel je dois poster pour ce genre de problème ?