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 :

Problème boucle infinie


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 258
    Par défaut Problème boucle infinie
    Bonjour,

    j'ai écris un programme qui, lors d'une boucle infinie, filme des vidéos de trois minutes.

    Cela marche bien pendant presque une journée entière, puis le programme bloque sans
    que je sache pourquoi.

    Quand je fais ps -aux | more la tache est toujours présente en mode sleep, mais bloquée à une certaine heure.

    J'utilise la commande raspivid pour la vidéo.

    Est-ce un problème mmal ou autre ?

    Comment savoir ?

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Ca ressemble à une saturation mémoire.
    Citation Envoyé par frederic13870 Voir le message
    Comment savoir ?
    Du printf() dans la boucle. Regarder le retour des fonctions systèmes, la valeur de errno. Peut-être rajouter du sleep pour laisser au bouzin le temps de se reposer...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 258
    Par défaut Merci
    Peut-être puis-je paramétrer la mémoire avec raspi-config et faire un essai ?

    Je ne fais pas de malloc, mais utilise un tableau de grande taille ...

    Le problème est que je lance le programme en tache de fond avec une commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nohup ./camera -i 10 -d 5 &
    i étant le nombre d'images par seconde et d la durée d'enregistrement en jours.

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Bonjour.

    Je rejoins Sve@r sur un problème de dépassement de tampon.

    Même si tu n'alloues pas de mémoire dans le tas, la pile a une taille limitée. Elle est réglable de mon souvenir dans le système d'exploitation.

    Plutôt que de lancer ton application "à l'infini" pourquoi ne pas la lancer avec crontab. Tu choisis l'intervalle de temps pour chaque lancement et une exécution enregistre 3 minutes.

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par frederic13870 Voir le message
    Je ne fais pas de malloc, mais utilise un tableau de grande taille ...
    grande taille ça veut tout dire et rien dire à la fois. Mais malloc pourrait avoir une utilité dans la mesure où lui il bosse dans le tas et non dans la pile (plus réduite). Ceci dit, dans la mesure où tu ne fais pas de VLA (j'espère) et que ton tableau est défini hors de la boucle, ça ne devrait pas influer (et même s'il est défini dans la boucle, chaque itération terminée libère la mémoire)

    Citation Envoyé par frederic13870 Voir le message
    Le problème est que je lance le programme en tache de fond avec une commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nohup ./camera -i 10 -d 5 &
    T'as une sortie dans "nohup.out". Si tu rajoutes des témoins dans la boucle tu auras un résultat utilisable.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Et le code est ?
    Ce serait pas la première fois que je vois un truc boucler sur un ensemble et exploser quand on ajoute des choses dedans.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 258
    Par défaut Module ou noyau ?
    J'aimerai être sur qu'un module du noyau, ou le noyau lui-même, ou bien le matériel n'est pas en cause.

    Pour cela, je fait des Et je trouve régulièrement des erreurs.

    Voulez-vous que je vous les montre ?


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème boucle infinie bloquer comment bloquer outlook
    Par traersa dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 09/03/2018, 11h03
  2. Problème boucle infinie
    Par Hafa10 dans le forum Langage
    Réponses: 9
    Dernier message: 16/05/2015, 19h01
  3. [XL-2007] Problème boucle infinie
    Par s.byczek dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/02/2012, 14h49
  4. [XL-2010] Problème boucle infini
    Par Zaelos dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 24/01/2012, 10h49
  5. problème boucle infinie
    Par hanou88 dans le forum C
    Réponses: 7
    Dernier message: 05/11/2010, 01h15

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