Assertion failed et Boost.Asio
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! 8O
Je sais bien qu'en release, les assertions sont désactivées, mais que tout fonctionne correctement derrière je trouve ça... presque louche ! :aie:
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:
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)
:merci:
Poukill
EDIT : j'ai trouvé un post où une personne a un problème similaire ICI