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 :

Segmentation fault sur un test "if (!variable)"


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Par défaut Segmentation fault sur un test "if (!variable)"
    Bonjour ^^

    Juste une petite question, parce que j'ai un seg fault qui est en train de me rendre fou (et que je ne peux pas reproduire facilement pour des raisons diverse, je n'ai que le core qui a été généré).

    Avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    PRINT_DEBUG("log1");
    if (!mavariable) {
       PRINT_DEBUG("log2");
    } else {
       PRINT_DEBUG("log3");
    }
    Ma question est générale au langage. Existe-t-il des contenus de "mavariable" qui font que au moment du if, le code plante avec un segfault ? Parce que dans mon log, j'ai "log1", mais ni "log2", ni "log3".
    (pour info, dans mon code, "mavariable" est de type : QDBusConnection *)

    Merci d'avance !

  2. #2
    Membre chevronné
    Inscrit en
    Décembre 2010
    Messages
    290
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 290
    Par défaut
    Suivant comment ton log est implémenté, il se peut que tu passes bien par "log2" ou "log3" mais que ceci ne soit pas écrit dans ton fichier log. Plus précisément, ton log n'est peut être pas "flushé" (y a peut être un terme francophone plus correct).

  3. #3
    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 : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    s'il s'agit bien d'une variable d'un type de base et non d'un appel à une fonction il est absolument impossible que !mavariable explose
    Une variable existe toujours, sinon ça compilerait pas, et a toujours une valeur donc l'opération ! peut se faire

    S'agit-il vraiment d'un QDBusConnection * et non d'un simple QDBusConnection ? Dans ce dernier cas, l'opération ! a dû être surchargée et c'est dans la surcharge que ça plante
    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.

  4. #4
    Membre éprouvé
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Par défaut
    C'est bien un QDBusConnection *. Je vais vérifier le coup de la surcharge de l'opérateur histoire d'être sûr, c'est une bonne idée.
    Pour le log qui ne s'affiche pas parce que pas flushé, j'y avais déjà pensé. C'est normalement peu probable, mais vu que c'est à peu près la seule autre piste, je vais chercher en supposant quand même que c'est le cas.

    Merci beaucoup

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Par défaut
    Citation Envoyé par Rakken Voir le message
    C'est bien un QDBusConnection *. Je vais vérifier le coup de la surcharge de l'opérateur histoire d'être sûr, c'est une bonne idée.
    comme le dit Bousk, seulement si ta variable est de type objet. Pour un pointeur, ! pourra se faire (et retournera true si le pointeur est nul)

Discussions similaires

  1. Segmentation fault sur script PHP
    Par zoullou dans le forum Langage
    Réponses: 1
    Dernier message: 03/04/2007, 09h32
  2. Segmentation fault sur new[] et delete[]
    Par Don ViP dans le forum C++
    Réponses: 4
    Dernier message: 30/04/2006, 00h29
  3. Segmentation Fault sur un fclose
    Par Beush dans le forum C
    Réponses: 9
    Dernier message: 30/11/2005, 19h30
  4. Segmentation fault sur un gethostbyname ?
    Par Mitox dans le forum Réseau
    Réponses: 9
    Dernier message: 25/11/2005, 16h17

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