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!
puis OUT_OF_RANGE évidemment...Envoyé par xstring,112
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 !
Lorsque je supprime l'appel réseau, plus de plantage...
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) { // } }
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
Partager