[Visual C++] Différence entre Debug et Release

Différence entre Debug et Release [Visual C++] - C++ - Programmation

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.

Reply

Marsh Posté le 14-05-2007 à 16:43:35   

Reply

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à.


---------------
Töp of the plöp
Reply

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.

Reply

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 [:austin_powaaah]

Reply

Marsh Posté le 14-05-2007 à 18:20:59    

Vérifie toutes tes initialisations, bon courage.

Reply

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.


---------------
Töp of the plöp
Reply

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...


Message édité par slash33 le 17-05-2007 à 20:18:30
Reply

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 [:austin_powaaah]


Si MFC:
ASSERT_VALID(CObject)
AssertIsValidAddress(LPVOID, sizeof(ptr))
etc...
 
pour les checks mémoire

Reply

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é.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed