Différence entre Debug et Release [Visual C++] - C++ - Programmation
Marsh Posté le 14-05-2007 à 16:50:21
La mémoire utilisée est initialisée à 0 en debug, et n'est pas initialisée en release, déjà.
Marsh Posté le 14-05-2007 à 18:10:05
_darkalt3_ a écrit : La mémoire utilisée est initialisée à 0 en debug, et n'est pas initialisée en release, déjà. |
Comme tu dis, c'est 90% des problèmes rencontrés.
Marsh Posté le 14-05-2007 à 18:16:33
Mouerp, c'est clair que c'est une merde de mémoire, toujours super agréable le debug d'appli multithread
Marsh Posté le 15-05-2007 à 08:37:38
Si y'a du MFC dans le tas, ca m'est arrivé d'avoir "mal" construit des forms, et d'avoir des plantages fatals en release et rien en debug; j'ai recréé les forms proprement avec le classwizard pour palier à ça.
Marsh Posté le 17-05-2007 à 20:17:35
Une inversion :
Debug -> "généralement ça va"
Release -> des bugs
(calembourg)
Sinon fais gaffe aux directives #ifdef _DEBUG qui change ton code selon que tu es en release ou en debug...
Marsh Posté le 17-05-2007 à 20:20:33
Force Rose a écrit : Mouerp, c'est clair que c'est une merde de mémoire, toujours super agréable le debug d'appli multithread |
Si MFC:
ASSERT_VALID(CObject)
AssertIsValidAddress(LPVOID, sizeof(ptr))
etc...
pour les checks mémoire
Marsh Posté le 22-05-2007 à 15:59:39
Merci à vous. J'avais quelques petits problème de mémoire dû à un peu de précipitations lors du développement de certaines parties du code. Maintenant c'est réglé.
Marsh Posté le 14-05-2007 à 16:43:35
Bonjour,
Je réalise une dll qui s'occupe de la connexion avec un serveur distant pour le compte d'une application. Pour gérer la communication avec le serveur je lance un thread qui s'occupe d'écouter si le serveur envoi des données sur la socket pour ensuite décoder le message et réaliser les actions attendues. Ma dll marche impecablement en mode debug (avec pour le linkage de la runtime library l'option Multi-threaded debug DLL) mais plante lamentablement en release (avec l'option Multi-threaded DLL), un bon gros plantage freezant pas cool.
Certes mon application n'est pas finalisée pour l'instant (et il y a surement des opérations à sécuriser), mais j'aimerais quand même vous demander exactement les raisons profondes de cette différence de comportement (ça serait un problème de heap) et comment résoudre le problème.
Merci d'avance à ceux qui s'intéresseront à mon misérable problème.