Bonjour à tous,

Je travaille actuellement sur un projet personnel d'échange de données réseau.
Lors de l'exécution en mode Debug, j'ai un magnifique plantage Debug Assertion Failed!
Citation Envoyé par xstring,112
string iterator not dereferencable
puis OUT_OF_RANGE évidemment...

En mode release, ce code ne donne aucun plantage. je dirai même qu'il donne entière satisfaction!

Je sais bien qu'en release, les assertions sont désactivées, mais que tout fonctionne correctement derrière je trouve ça... presque louche !
De plus, j'ai déjà utilisé dans mon programme plein de bouts de code similaires, qui passent en débug. Donc que tout fonctionne en release, bah je trouve ça presque normal !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
void file_transfer_manager::handle_connect_ask(boost::shared_ptr<connection> new_connection, const std::string& filename, const boost::system::error_code& error)
{
	if (!error)
	{
		// On envoie les informations sur le fichier que l'on souhaite récupérer
		generic_message msg;
		msg.m_type = generic_message::FILE_INFORMATION;
		msg.m_string = filename;
 
                // sérialisation + envoi
		new_connection->async_write(msg,
			boost::bind(&file_transfer_manager::handle_ask, this,
			boost::asio::placeholders::error)
			);
	} // Message ci dessus envoyé, et correctement reçu par le client distant!
           // Mais le callback ci dessous n'est jamais appelé...
} // PLANTAGE après la fin de cette fonction, dans le fin fond
  // des appels de Boost::asio
 
void file_transfer_manager::handle_ask(const boost::system::error_code& error)
{
	if (!error)
	{
		//
	}
}
Lorsque je supprime l'appel réseau, plus de plantage...

Ma question est
: Est-ce qu'il peut avoir un problème dans boost::asio ou ailleurs ? (le débogage me donne une ligne dans boost::asio::buffer juste avant le plantage).
Si c'est forcément mon code, mea culpa, et je retourne à ma débuggeur (débogage relativement difficile ici)



Poukill

EDIT : j'ai trouvé un post où une personne a un problème similaire ICI