IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Pourquoi un programme s'arrête-t-il ?


Sujet :

C++

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2004
    Messages : 142
    Points : 119
    Points
    119
    Par défaut Pourquoi un programme s'arrête-t-il ?
    Bonjour à tous !

    Il m'arrive un truc bizarre !

    Un de mes programmes s'arrête et je ne sais pas pourquoi !

    Il semble se dérouler normalement pendant des heures et brusquement, il disparaît.

    Il s'agit d'un programme console que je fais tourner dans une fenêtre MSDOS. Comme il est très long, j'imprime toutes les minutes quelques informations pour surveiller sa progression. La suite des impressions se poursuit tranquillement pendant plus de sept heures et s'arrête.

    Pour découvrir l'endroit où il décide de cesser de travailler, j'ai remplacé tous les "exit" du programme par un appel à un module qui imprime le statut du programme avant de s'arrêter effectivement, j'ai également inséré un appel à ce module juste avant la fin du programme "main" : eh bien il ne passe pas par ce module !

    Je ne doute pas qu'il s'agisse bien sûr d'une erreur de programmation : ce que je voudrais savoir, c'est quel genre de cause peut provoquer un tel comportement ! Au minimum, j'aurais espéré un diagnostique, un avertissement, une alerte, voire une insulte ! Mais rien, absolument rien ! Il s'arrête, c'est tout !

    Est-ce que quelqu'un a une idée ? Peut-il s'agir d'un dépassement de tableau ? Aurais-je écrasé un emplacement mémoire ? Je suis dans le noir complet ! Et une exécution en mode debug me paraît difficile à réaliser car s'il s'arrête au bout de 7 heures en mode normal, il lui faudra peut-être 14 heures en mode debug...

    Toute suggestion sera la bienvenue ! Merci d'avance de vos contributions.

    P.S. J'utilise Borland C++ Builder version 4.0 (Build 14.4)
    Je suis sour MD Windows XP SP3
    CPU : Pentium 4, 3GHz, 2 GB RAM
    ATI Radeon HD 2400 PRO AGP

    Pour l'exécution, j'ai supprimé l'écran de veille !

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 667
    Points
    5 667
    Par défaut
    Mei,

    La réponse est simple : ça peut être n'importe quoi !

    Et comme les boules de cristal sont en migration en ce moment ...

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2004
    Messages : 142
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par droggo Voir le message
    La réponse est simple : ça peut être n'importe quoi !
    Merci droggo ! Heureusement que tu es là !

    Mais je ne crois pas que cela puisse être n'importe quoi ! Je ne l'ai peut-être pas dit suffisamment clairement, mais il était au moins sous-entendu que je l'ai fait tourner deux fois. La première fois m'a fait découvrir le problème ; la deuxième, qui devait m'apporter une réponse grâce aux impressions, ne m'a pas davantage renseigné. Il me semble, que cela s'est arrêté au même endroit, à peu près sept heures après le début. Par conséquent, il est clair que c'est bien mon programme qui perd les pédales ! Je veux dire que ce n'est sûrement pas le système, ni un virus quelconque, ni internet (l'accès était ouvert, mais aucun logiciel n'était en connexion ; de plus, s'il s'agissait d'une intervention extérieure, je la vois mal interrompre un programme au même endroit après sept heures d'exécution...). Le disque dur a encore 50GB de libre, ce n'est donc pas non plus lié au disque dur.

    Je comprends que quiconque ne connaît pas le programme ne peut m'apporter quelqu'aide que ce soit à son debugging : ce n'est donc pas le but de mon appel à l'aide. Ma question est simplement "est-il possible que j'aie écrasé un bout de mémoire vive quelque part, sans que le système m'envoie une bordée d'injures, et que cela ait eu pour simple effet d'arrêter les frais ?" Je précise que seul mon programme s'est arrêté : le PC n'est pas planté, le système tourne normalement, les applications que j'ai l'habitude d'utiliser sont parfaitement opérationnelles !

    Merci de ta réponse en tous cas !

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 667
    Points
    5 667
    Par défaut
    Kai,

    Ma réponse, qui n'était pas ironique, signifiait : sans autre renseignement, et sans le code, il est impossible de te répondre, et par conséquent, on peut dire que ça peut être n'importe quoi, les causes de plantages étant pour le moins nombreuses.

    Tu peux nous dire tout ce que tu veux sur ton code, tout ce que tu penses à son propos, tout ce que tu as fait pour le tester, sans le code, on en reste au même point : pas de réponse possible.

    Au mieux, il faut faire appel à nos qualités de devins, d'où la réflexion sur la migration des boules de cristal.

    Imagine que la situation soit inversée et que je pose la question dans les mêmes termes que tu l'as posée.
    Seras-tu capable de me donner une réponse claire et justifiée ?

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Effectivement, cela peut être n'importe quoi... Si tu as une idée où ton programme est susceptible de planter, alors ne pas hésiter à abuser des traces et autres dump pour identifier ton bug au plus près... Ensuite, analyse de code et la lumière sera

Discussions similaires

  1. RMI, pourquoi le programme serveur ne s'arrete pas?
    Par cmako dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 01/06/2007, 10h55
  2. Réponses: 7
    Dernier message: 03/05/2007, 15h58
  3. Réponses: 4
    Dernier message: 09/09/2006, 21h48
  4. Réponses: 9
    Dernier message: 30/05/2006, 18h44
  5. Pourquoi la programmation Shell ?
    Par am.adnane dans le forum Linux
    Réponses: 14
    Dernier message: 21/01/2006, 00h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo