Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1317 connectés 

  FORUM HardWare.fr
  Programmation
  C

  programme marche en mode normal mais pas en mode debug

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

programme marche en mode normal mais pas en mode debug

n°1855416
pseupseu
Posté le 26-02-2009 à 10:38:42  profilanswer
 

Bonjour à tous,
 
Je développe en C sous Visual C++.  
J'ai un problème de taille : lorsque j'exécute mon programme en mode normal, ça fonctionne mais lorsque je passe en mode debug, Visual C++ bloque puis le debugger s'arrête d'un coup.
En général, lorsque ça plante, le debugger ne s'éteint jamais comme ça.
 
Est-ce quelqu'un a déjà eu ce problème ?
 
Merci de votre réponse

mood
Publicité
Posté le 26-02-2009 à 10:38:42  profilanswer
 

n°1855431
Joel F
Real men use unique_ptr
Posté le 26-02-2009 à 11:00:37  profilanswer
 

plantage dans de l'allocation dynamique de mémoire, accés à de la mémoire non allouée. Montre du code sinon on pourra rien dire

n°1855435
Elmoricq
Modérateur
Posté le 26-02-2009 à 11:09:12  profilanswer
 

Ça pue l'utilisation d'un pointeur non-initialisé qui "fonctionne" par coup de bol en mode optimisé parce qu'il y a quelque chose dedans qui correspond vaguement à une adresse (de façon aléatoire), mais qui en mode debug est initialisé à 0, donc NULL, donc segfault.

n°1855438
pseupseu
Posté le 26-02-2009 à 11:12:18  profilanswer
 

Joel F a écrit :

plantage dans de l'allocation dynamique de mémoire, accés à de la mémoire non allouée. Montre du code sinon on pourra rien dire


 
Merci de la réponse.  
En fait, il se trouve que le code du projet est très important. Il est difficile de montrer du code pertinent.
Je voulais savoir s'il y avait des choses à savoir sur la configuration d'un debugger ou si le fait de réinstaller Visual C++ pouvait changer quelque chose.
Mais d'après toi le problème vient du code, donc je vais rectifier ça
 
Merci

n°1855441
pseupseu
Posté le 26-02-2009 à 11:16:15  profilanswer
 

Elmoricq a écrit :

Ça pue l'utilisation d'un pointeur non-initialisé qui "fonctionne" par coup de bol en mode optimisé parce qu'il y a quelque chose dedans qui correspond vaguement à une adresse (de façon aléatoire), mais qui en mode debug est initialisé à 0, donc NULL, donc segfault.


 
 
Ok. Je ne pensais pas qu'il y avait une différence entre l'exécution en mode debug et celle en mode normal.
Effectivement, le coup du pointeur mal initialisé est plus que probable.
 
Merci pour la réponse
 
 

n°1855443
Elmoricq
Modérateur
Posté le 26-02-2009 à 11:16:40  profilanswer
 

Faut utiliser le debugger jusqu'à l'endroit du plantage et examiner les variables. Du travail de fourmi mais si tu n'as pas d'outils type purify ou insure++ ou autre, il n'y a que comme ça que tu arriveras à tracer le problème.
 
En tout cas, ce n'est pas un problème de compilation ou de debugger, c'est typiquement un souci de gestion mémoire.

n°1855445
Elmoricq
Modérateur
Posté le 26-02-2009 à 11:17:14  profilanswer
 

pseupseu a écrit :

Ok. Je ne pensais pas qu'il y avait une différence entre l'exécution en mode debug et celle en mode normal.
Effectivement, le coup du pointeur mal initialisé est plus que probable.

 

Merci pour la réponse

 

Disons que le mode debug initialise toutes les variables à 0 tout le temps, pour permettre justement de tracer plus facilement l'utilisation de pointeurs non-initialisés. En tout cas si je rencontrais ce problème c'est d'abord de ce côté que je chercherais.

Message cité 1 fois
Message édité par Elmoricq le 26-02-2009 à 11:17:52
n°1855448
pseupseu
Posté le 26-02-2009 à 11:28:10  profilanswer
 

Elmoricq a écrit :


 
Disons que le mode debug initialise toutes les variables à 0 tout le temps, pour permettre justement de tracer plus facilement l'utilisation de pointeurs non-initialisés. En tout cas si je rencontrais ce problème c'est d'abord de ce côté que je chercherais.


 
 
Bon à savoir  
 
Merci
 
 

n°1855516
pseupseu
Posté le 26-02-2009 à 14:22:05  profilanswer
 

Bonjour à tous,
 
J'ai eu d'autres éléments de réponse que je me permets de vous communiquer
 
http://www.developpez.net/forums/d [...] ode-debug/
 
En vous remerciant et en vous souhaitant une bonne journée

n°1857944
pseupseu
Posté le 05-03-2009 à 12:51:05  profilanswer
 

Bonjour à tous,
 
Je me permets de vous donner le fin mot de l'histoire de mon problème.
Il y avait beaucoup de zones mémoire allouées et non initialisées. En mode debug ces zones étaient initialisée à 0xcccccccc alors qu'en mode normal elles étaient initialisées à 0x00000000.
 
Merci et bonne journée  
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  programme marche en mode normal mais pas en mode debug

 

Sujets relatifs
Fichier .bat pour démarrer un programme uniquement sur réponse de pingcompteur de visite qui ne marche pas
executer un programme en une seule ligne de commandeTest type mime d'un fichier envoyé par un input sous IE ne marche pas
AJAX + onblur + IE : ne marche pas[htaccess] Anti SPAM qui marche pas ...
Petit programmeDebug avec Emulator CE 5.0 (x86) et Visual Studio 2005
Peut creer un programme pour voyager sur des pages web[C][Linux]Que fait un programme qui reçoit un signal ?
Plus de sujets relatifs à : programme marche en mode normal mais pas en mode debug


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR