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

Langage C++ Discussion :

Debugging Problem: Program received signal SIGSEGV, Segmentation fault


Sujet :

Langage C++

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Debugging Problem: Program received signal SIGSEGV, Segmentation fault
    Bonjour,
    J'essaie de déboguer un code C++, mais puisque je n'y connais pas grand chose, j'arrive pas à deviner le problème!
    Besoin d'aide s'il vous plait!
    Voici l'output, (auquel j'ai rien compris au fait, si ya un lien qui me permettra de comprendre je vous serai infiniment reconnaissante!)
    rihab@rihab-laptop:~/ns-test$ gdb ns
    (gdb) run /home/rihab/ns-allinone-2.34/ns-2.34/OWNS/demos/owns_demo.tcl
    Starting program: /usr/local/bin/ns /home/rihab/ns-allinone-2.34/ns-2.34/OWNS/demos/owns_demo.tcl
    type random, seed 99
    nodes 7, scale 7, method pure-random
    conn prob 0.4, beta 0.5, gamma 0.5
    Creating WDMNodes...
    Creating links 0...
    Program received signal SIGSEGV, Segmentation fault.
    0x08345248 in WDMAgent::sendmsg(int, char const*) ()
    (gdb) info s
    #0 0x08345248 in WDMAgent::sendmsg(int, char const*) ()
    #1 0x0833fc11 in EXPOO_SessionTraffic::timeout() ()
    #2 0x0833ea44 in SessionTrafficTimer::expire(Event*) ()
    #3 0x0816444d in TimerHandler::handle(Event*) ()
    #4 0x0816607c in Scheduler::dispatch(Event*, double) ()
    #5 0x081662ca in Scheduler::run() ()
    #6 0x08166581 in Scheduler::command(int, char const* const*) ()
    #7 0x08345aba in TclClass::dispatch_cmd(void*, Tcl_Interp*, int, char const**)
    ()
    #8 0x0834a84e in OTclDispatch (cd=0x86fc218, in=0x8526520, argc=3,
    argv=0xbfffd59c) at otcl.c:434
    #9 0x0834f44e in TclInvokeStringCommand ()
    #10 0x0835108e in TclEvalObjvInternal ()
    #11 0x0837be5d in TclExecuteByteCode ()
    #12 0x08381405 in TclCompEvalObj ()
    #13 0x0837bd00 in TclExecuteByteCode ()
    #14 0x08381405 in TclCompEvalObj ()
    #15 0x083ab925 in TclObjInterpProc ()
    #16 0x083abdc3 in TclProcInterpProc ()
    #17 0x0834aa4e in OTclDispatch (cd=0x853e248, in=0x8526520, argc=2,
    argv=0xbfffe21c) at otcl.c:477
    #18 0x0834f44e in TclInvokeStringCommand ()
    #19 0x0835108e in TclEvalObjvInternal ()
    ---Type <return> to continue, or q <return> to quit---
    #20 0x0837be5d in TclExecuteByteCode ()
    #21 0x08381405 in TclCompEvalObj ()
    #22 0x083ab925 in TclObjInterpProc ()
    #23 0x083abdc3 in TclProcInterpProc ()
    #24 0x0834a84e in OTclDispatch (cd=0x86d8fe0, in=0x8526520, argc=2,
    argv=0xbfffebac) at otcl.c:434
    #25 0x0834f44e in TclInvokeStringCommand ()
    #26 0x0835108e in TclEvalObjvInternal ()
    #27 0x08351d32 in Tcl_EvalEx ()
    #28 0x0839a90f in Tcl_FSEvalFile ()
    #29 0x0839dfac in Tcl_Main ()
    #30 0x083457b4 in nslibmain ()
    #31 0x08345812 in main ()
    Vous pouvez m'aider?
    Merciii

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Points : 49
    Points
    49
    Par défaut
    Bonsoir

    Pour moi c'est du charabia (en plus je me lance dans Linux) mais je pense que ton programme à reçu le signal SIGSEGV parce qu'il a tenté d'accéder à une zone mémoire qui ne lui était pas allouée (SIG) Signal (SEG) Segment (V) Violation.

    D'après ce que j'ai compris de :

    On POSIX-compliant platforms, SIGSEGV is the signal sent to a process when it makes an invalid memory reference, or segmentation fault.

    SIG is a common prefix for signal names. SEGV is an abbreviation of segmentation violation

    A segmentation fault (often shortened to segfault) or access violation is a particular error condition that can occur during the operation of computer software. A segmentation fault occurs when a program attempts to access a memory location that it is not allowed to access, or attempts to access a memory location in a way that is not allowed (for example, attempting to write to a read-only location, or to overwrite part of the operating system).

  3. #3
    Membre averti Avatar de Jenna
    Inscrit en
    Décembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2009
    Messages : 272
    Points : 339
    Points
    339
    Par défaut
    la trace du debugger indique que cela a craché dans la fonction sendmsg().

    Probablement effectivement à cause d'un mauvais pointeur ou d'un pointeur fou. Maintenant, il faut relever les manches et y aller avec le debugger pour savoir pourquoi. Commence par regarder le 2eme paramètre de sendmsg() qui est un bon candidat au bug (char *)

    Dis toi que tu as de la chance, tu arrives à reproduire ton bug
    La valeur n'attend pas le nombre des années

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/12/2013, 09h19
  2. signal sigsegv segmentation fault
    Par plus1 dans le forum C
    Réponses: 11
    Dernier message: 11/11/2013, 22h35
  3. Réponses: 2
    Dernier message: 23/04/2012, 23h07
  4. Réponses: 0
    Dernier message: 10/01/2008, 23h28
  5. Réponses: 15
    Dernier message: 15/04/2007, 13h31

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