Visual C++ difference entre mode debug et exec

Visual C++ difference entre mode debug et exec - C++ - Programmation

Marsh Posté le 13-11-2003 à 10:41:46    

Bonjour,  
Je dois debugger un soft d'affichage d'image,  
et le problème survient lors de l'excution du dit soft.
 
Pourtant quand je me mets en mode debuggage il fonctionne  
parfaitement.  
 
l'un de vous saurais me dire la difference entre le mode debug  
et l'exec du programe, si difference il y a ?  
 
Y a t'il une difference dans le mode d'utilisation des buffers,  
de l'alloc memoir ... etc ...  
 
merci et bonne journée

Reply

Marsh Posté le 13-11-2003 à 10:41:46   

Reply

Marsh Posté le 13-11-2003 à 10:43:58    

Ouye. la, t'es passablement tres mal. Ce genre de blague arrive (j'imagine que quand tu parle d'exec tu pense faire "start without debugging" ) et heuh, j'ai pas de feinte miracle pour trouver la cause. Bon, ce que tu peux faire tout betement, c'est le lancer en "exec" et quand ca plante regarder ou via le debuggueur, tu devrais deja en savoir plus.
 

Reply

Marsh Posté le 13-11-2003 à 10:49:02    

Ca, à mon humble avis, ça pue le débordement...
Un indice qui va au delà des limites d'un tableau, ou un pointeur qui pointe n'importe où (d'ailleurs ça revient au même).
La différence vient qu'en "mode debug", la mémoire allouée au process est plus importante pour permettre justement l'utilisation du debuggeur; ton pointeur qui pointe mal doit continuer à taper dans une zone réservée au process malgrè tout. En "mode exe" pas de débuggeur, moins de mémoire, donc au premier débordement->crash.
On voit aussi des symptômes équivalents en rajoutant des "printf" dans un code C...

Reply

Marsh Posté le 13-11-2003 à 15:04:34    

autre différence de taille: dans un cas la mémoire est initialisée à 0 et pas dans l'autre (je ne sais plus lequel).

Reply

Marsh Posté le 13-11-2003 à 15:05:44    

sowhatin22 a écrit :

autre différence de taille: dans un cas la mémoire est initialisée à 0 et pas dans l'autre (je ne sais plus lequel).


 
hum non la a mon idee tu confonds debug et release
(et elle est pas init a 0 mais a 0xCC)

Reply

Marsh Posté le 13-11-2003 à 18:15:56    

Il me semble que c'est la pile qui est initialisée à 0xCC, et que les vars globales sont à 0.
Généralement ton erreur est dûe à une var non initialisée. Je crois aussi qu'en debug il alloue un peu plus que ce qui est demandé...
http://www.codeproject.net/debug/s [...] print=true


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Sujets relatifs:

Leave a Replay

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