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 :

erreur de segmentation


Sujet :

C++

  1. #21
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 53
    Points : 16
    Points
    16
    Par défaut
    Merci pour votre aide, effectivement je suis assez débutante en c++ et surtout aussi en lunix et surtout ce qui me dérange c'est que j'arrive nullement pas encore à cerner l'erreur d'ou elle peut venir
    voilà je vous envoie mon Makefile. Je vous suis vraiment reconnaissante pour tous vos efforts.
    Merci

    Mon makefile
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    # CMAKE generated file: DO NOT EDIT!
    # Generated by "Unix Makefiles" Generator, CMake Version 2.6
    
    # Default target executed when no arguments are given to make.
    default_target: all
    .PHONY : default_target
    
    #=============================================================================
    # Special targets provided by cmake.
    
    # Disable implicit rules so canoncical targets will work.
    .SUFFIXES:
    
    # Remove some rules from gmake that .SUFFIXES does not remove.
    SUFFIXES =
    
    .SUFFIXES: .hpux_make_needs_suffix_list
    
    # Suppress display of executed commands.
    $(VERBOSE).SILENT:
    
    # A target that is always out of date.
    cmake_force:
    .PHONY : cmake_force
    
    #=============================================================================
    # Set environment variables for the build.
    
    # The shell in which to execute make rules.
    SHELL = /bin/sh
    
    # The CMake executable.
    CMAKE_COMMAND = /usr/local/bin/cmake
    
    # The command to remove a file.
    RM = /usr/local/bin/cmake -E remove -f
    
    # The top-level source directory on which CMake was run.
    CMAKE_SOURCE_DIR = /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo
    
    # The top-level build directory on which CMake was run.
    CMAKE_BINARY_DIR = /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build
    
    #=============================================================================
    # Targets provided globally by CMake.
    
    svm.o: /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build/lib/libsvm-2.82/svm.cpp /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build/lib/libsvm-2.82/svm.h
    			$(CXXC) $(CFLAGS)  -c /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build/lib/libsvm-2.82/svm.cpp
    # Special rule for the target edit_cache
    edit_cache:
    	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running interactive CMake command-line interface..."
    	/usr/local/bin/cmake -i .
    .PHONY : edit_cache
    
    # Special rule for the target edit_cache
    edit_cache/fast: edit_cache
    .PHONY : edit_cache/fast
    
    # Special rule for the target rebuild_cache
    rebuild_cache:
    	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
    	/usr/local/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
    .PHONY : rebuild_cache
    
    # Special rule for the target rebuild_cache
    rebuild_cache/fast: rebuild_cache
    .PHONY : rebuild_cache/fast
    
    # Special rule for the target test
    test:
    	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..."
    	/usr/local/bin/ctest --force-new-ctest-process $(ARGS)
    .PHONY : test
    
    # Special rule for the target test
    test/fast: test
    .PHONY : test/fast
    
    # The main all target
    all: cmake_check_build_system
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build/CMakeFiles /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build/tutorial/FeatureSelection2/CMakeFiles/progress.make
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f CMakeFiles/Makefile2 tutorial/FeatureSelection2/all
    	$(CMAKE_COMMAND) -E cmake_progress_start /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build/CMakeFiles 0
    .PHONY : all
    
    #svm.o: svm.cpp svm.h
    #	$(CXXC) $(CFLAGS) -c svm.cpp
    
    
    # The main clean target
    clean:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f CMakeFiles/Makefile2 tutorial/FeatureSelection2/clean
    .PHONY : clean
    
    # The main clean target
    clean/fast: clean
    .PHONY : clean/fast
    
    # Prepare targets for installation.
    preinstall: all
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f CMakeFiles/Makefile2 tutorial/FeatureSelection2/preinstall
    .PHONY : preinstall
    
    # Prepare targets for installation.
    preinstall/fast:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f CMakeFiles/Makefile2 tutorial/FeatureSelection2/preinstall
    .PHONY : preinstall/fast
    
    # clear depends
    depend:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
    .PHONY : depend
    
    # Convenience name for target.
    tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionEA.dir/rule:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f CMakeFiles/Makefile2 tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionEA.dir/rule
    .PHONY : tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionEA.dir/rule
    
    # Convenience name for target.
    FeatureSelectionEA: tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionEA.dir/rule
    .PHONY : FeatureSelectionEA
    
    # fast build rule for target.
    FeatureSelectionEA/fast:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionEA.dir/build.make tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionEA.dir/build
    .PHONY : FeatureSelectionEA/fast
    
    # Convenience name for target.
    tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/rule:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f CMakeFiles/Makefile2 tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/rule
    .PHONY : tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/rule
    
    # Convenience name for target.
    FeatureSelectionLibEA: tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/rule
    .PHONY : FeatureSelectionLibEA
    
    # fast build rule for target.
    FeatureSelectionLibEA/fast:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/build.make tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/build
    .PHONY : FeatureSelectionLibEA/fast
    
    FeatureSelectionEA.o: FeatureSelectionEA.cpp.o
    .PHONY : FeatureSelectionEA.o
    
    # target to build an object file
    FeatureSelectionEA.cpp.o:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionEA.dir/build.make tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionEA.dir/FeatureSelectionEA.cpp.o
    .PHONY : FeatureSelectionEA.cpp.o
    
    FeatureSelectionEA.i: FeatureSelectionEA.cpp.i
    .PHONY : FeatureSelectionEA.i
    
    # target to preprocess a source file
    FeatureSelectionEA.cpp.i:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionEA.dir/build.make tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionEA.dir/FeatureSelectionEA.cpp.i
    .PHONY : FeatureSelectionEA.cpp.i
    
    FeatureSelectionEA.s: FeatureSelectionEA.cpp.s
    .PHONY : FeatureSelectionEA.s
    
    # target to generate assembly for a file
    FeatureSelectionEA.cpp.s:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionEA.dir/build.make tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionEA.dir/FeatureSelectionEA.cpp.s
    .PHONY : FeatureSelectionEA.cpp.s
    
    FeatureSelectionLibEA.o: FeatureSelectionLibEA.cpp.o
    .PHONY : FeatureSelectionLibEA.o
    
    # target to build an object file
    FeatureSelectionLibEA.cpp.o:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/build.make tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/FeatureSelectionLibEA.cpp.o
    .PHONY : FeatureSelectionLibEA.cpp.o
    
    FeatureSelectionLibEA.i: FeatureSelectionLibEA.cpp.i
    .PHONY : FeatureSelectionLibEA.i
    
    # target to preprocess a source file
    FeatureSelectionLibEA.cpp.i:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/build.make tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/FeatureSelectionLibEA.cpp.i
    .PHONY : FeatureSelectionLibEA.cpp.i
    
    FeatureSelectionLibEA.s: FeatureSelectionLibEA.cpp.s
    .PHONY : FeatureSelectionLibEA.s
    
    # target to generate assembly for a file
    FeatureSelectionLibEA.cpp.s:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/build.make tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/FeatureSelectionLibEA.cpp.s
    .PHONY : FeatureSelectionLibEA.cpp.s
    
    make_FeatureSelection.o: make_FeatureSelection.cpp.o
    .PHONY : make_FeatureSelection.o
    
    # target to build an object file
    make_FeatureSelection.cpp.o:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/build.make tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/make_FeatureSelection.cpp.o
    .PHONY : make_FeatureSelection.cpp.o
    
    make_FeatureSelection.i: make_FeatureSelection.cpp.i
    .PHONY : make_FeatureSelection.i
    
    # target to preprocess a source file
    make_FeatureSelection.cpp.i:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/build.make tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/make_FeatureSelection.cpp.i
    .PHONY : make_FeatureSelection.cpp.i
    
    make_FeatureSelection.s: make_FeatureSelection.cpp.s
    .PHONY : make_FeatureSelection.s
    
    # target to generate assembly for a file
    make_FeatureSelection.cpp.s:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(MAKE) -f tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/build.make tutorial/FeatureSelection2/CMakeFiles/FeatureSelectionLibEA.dir/make_FeatureSelection.cpp.s
    .PHONY : make_FeatureSelection.cpp.s
    
    # Help Target
    help:
    	@echo "The following are some of the valid targets for this Makefile:"
    	@echo "... all (the default if no target is provided)"
    	@echo "... clean"
    	@echo "... depend"
    	@echo "... FeatureSelectionEA"
    	@echo "... FeatureSelectionLibEA"
    	@echo "... edit_cache"
    	@echo "... rebuild_cache"
    	@echo "... test"
    	@echo "... FeatureSelectionEA.o"
    	@echo "... FeatureSelectionEA.i"
    	@echo "... FeatureSelectionEA.s"
    	@echo "... FeatureSelectionLibEA.o"
    	@echo "... FeatureSelectionLibEA.i"
    	@echo "... FeatureSelectionLibEA.s"
    	@echo "... make_FeatureSelection.o"
    	@echo "... make_FeatureSelection.i"
    	@echo "... make_FeatureSelection.s"
    .PHONY : help
    
    
    
    #=============================================================================
    # Special targets to cleanup operation of make.
    
    # Special rule to run CMake to check the build system integrity.
    # No rule that depends on this can have commands that come from listfiles
    # because they might be regenerated.
    cmake_check_build_system:
    	cd /home/anne/Bureau/paradiseo-1.2.1/paradiseo-eo/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
    .PHONY : cmake_check_build_system

  2. #22
    Membre confirmé Avatar de Lavock
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 560
    Points : 633
    Points
    633
    Par défaut
    Bon, je maîtrise pas cmake, mais d'après la faq, il faudrait que tu lance cmake avec l'option :

    -D CMAKE_CXX_FLAG_MAINTENER=-g

    Je ne sais pas trop si _MAINTENER et nécessaire ni même à quoi il sert...
    A faire confirmer par quelqu'un qui maîtrise bien l'engin.
    The mark of the immature man is that he wants to die nobly for a cause, while the mark of the mature man is that he wants to live humbly for one.
    --Wilhelm Stekel

  3. #23
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    Le plus simple avec cmake, c'est probablement de faire
    ccmake .
    puis de modifier le CMAKE_BUILD_TYPE en Debug (puis c pour reconfigurer le projet, et g pour regénérer).

    Mais ne va pas toucher les fichiers générés par cmake (sauf si tu sais exactement ce que tu veux faire).

  4. #24
    screetch
    Invité(e)
    Par défaut
    le print debugging est du debuggage comme un autre. c'est ni plus ni moins que du log. l'avantage du print debugging c'est meme que tu peux avoir un historique de ce qui s'est passé (contrairement a gdb qui ne te donne que la derniere pile d'appel), par exemple combien de fois la fonction a été appelée avec succès avant de planter, etc.
    enfin chacun fait comme il lui plait hein.

  5. #25
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par screetch Voir le message
    le print debugging est du debuggage comme un autre. c'est ni plus ni moins que du log. l'avantage du print debugging c'est meme que tu peux avoir un historique de ce qui s'est passé (contrairement a gdb qui ne te donne que la derniere pile d'appel), par exemple combien de fois la fonction a été appelée avec succès avant de planter, etc.
    enfin chacun fait comme il lui plait hein.
    Le souci avec cette méthode c'est que ton exécutable de "debugging" n'est pas le même que le "produit" final, ca te force au moins deux compilation pour valider ta correction cela peu être long sur un gros produit.

    Pour ce genre de choses je préfère largement utiliser un tracer logger correctement configuré et utilisé.

    J'ai déjà vu des dev pas très propres oublier de nettoyer ce genre de macros, et livrer une version "debugging" (traces actives) en (pre)prod. Pire j'en ai vu faire des calcul dedans et piocher les infos comme si elles étaient valide pour le reste du code...
    depuis cette époque je suis plutôt froid par par rapport à cette façon de faire.

    mais effectivement chacun est libre de ses choix.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  6. #26
    screetch
    Invité(e)
    Par défaut
    on parle ici d'un projet qui ne doit pas etre de taille suffisante pour justifier un enorme investissement sur du print debugging.

  7. #27
    Membre confirmé Avatar de Lavock
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 560
    Points : 633
    Points
    633
    Par défaut
    Citation Envoyé par jabbounet Voir le message
    Le souci avec cette méthode c'est que ton exécutable de "debugging" n'est pas le même que le "produit" final, ca te force au moins deux compilation pour valider ta correction cela peu être long sur un gros produit.
    Avec gdb c'est pareil -> une compilation en -gX et une autre en -oX... Après, effectivement, chacun comme il veux... Ce que je reproche au trace, c'est qu'il fournit pas les états machines...
    The mark of the immature man is that he wants to die nobly for a cause, while the mark of the mature man is that he wants to live humbly for one.
    --Wilhelm Stekel

  8. #28
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par screetch Voir le message
    on parle ici d'un projet qui ne doit pas etre de taille suffisante pour justifier un enorme investissement sur du print debugging.
    une classe TracerLogger minimaliste ne doit pas prendre plus de 0.5 jours de conception/dev.

    je vois bien un truc du style (il peu y avoir des coquille je le tappe directement dans le message sans compiler).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    #include <iostream>
     
     class Tracer {
             // Définit les niveaux de trace diponible.
             typedef enum {
                  Debug = 0,
                  Info,
                  Warning,
             } TraceLevel;
     
             // constructeur.
             // prend le nom du traceur ainsi que le niveau de trace a afficher.
             Tracer(string aName,aLevel):
               name(aName),
               level(aLevel)
              {}  
     
             // Méthode pour tracer les messages.
             void traceDebugMessage(String &msg) {
                  if (level <= Debug) {  
                      std::cout << "DEBUG:" << name <<":"<<  msg << std::endl;
                  }
             }
     
             void traceInfoMessage(String &msg) {
                  if (level <= Info) {  
                      std::cout << "DEBUG:" << name <<":"<<  msg << std::endl;
                  }
             }
            void traceWarningMessage(String &msg) {
                  if (level <= Warning) {  
                      std::cout << "DEBUG:" << name <<":"<<  msg << std::endl;
                  }
             }
     
             void traceFatalMessage(String &msg) {
                  if (level <= Fatal) {  
                      std::cout << "DEBUG:" << name <<":"<<  msg << std::endl;
                  }
             }
     
             // Permet de changer le niveau de trace a afficher.              
             void setTraceLevel(TraceLevel aLevel) {
                 level = aLevel;
             }
     
             // permet de savoir si il est possible de tracer les 
             // message d'un niveau donné.
             bool isEnable(TraceLevel aLevel) { return (aLevel<= level); }
     
          private:
             String name;
             TraceLevel level;
       }
    et tu gère le niveau de trace a appliquer par conf (paramètre du programme, lecture de variable d'environnement, ...)
    Ce tracer (pas thread-safe) est rapide a implémenter et peux convenir a un petit projet.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  9. #29
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par Lavock Voir le message
    Avec gdb c'est pareil -> une compilation en -gX et une autre en -oX... Après, effectivement, chacun comme il veux... Ce que je reproche au trace, c'est qu'il fournit pas les états machines...
    tu peux laisser -g -O3 -Wall en même temps sur une version récente de gcc par exemple.
    Ensuite si tu ne veux pas que l'on vois les méthodes/objets de exe / lib tu peux le stripper pour virer la table des symboles (utilisé par le debugger) avant livraison (pas de recompilation dans ce cas
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  10. #30
    screetch
    Invité(e)
    Par défaut
    focus... on parle d'un projet de débutant en C++, pas de ta boite de professionnels...

  11. #31
    Membre confirmé Avatar de Lavock
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 560
    Points : 633
    Points
    633
    Par défaut
    Les traces définissable au runtime sont pratique, mais j'aime pas trop le concept de devoir les laisser dans le code final (même si ça alourdie par grand chose)...

    Hum, même actuellement le mode -g3 est incompatible avec -o3... Bon, après, on est pas obligé d'aller jusqu'à trois, mais je préfère.
    The mark of the immature man is that he wants to die nobly for a cause, while the mark of the mature man is that he wants to live humbly for one.
    --Wilhelm Stekel

  12. #32
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par screetch Voir le message
    focus... on parle d'un projet de débutant en C++, pas de ta boite de professionnels...
    oui, cependant il est bon de prendre tôt certaines habitudes, ou de savoir que d'autres méthodes existent.
    tant qu'a faire comme on veux autant avoir des choix devant soi.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  13. #33
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par Lavock Voir le message
    Les traces définissable au runtime sont pratique, mais j'aime pas trop le concept de devoir les laisser dans le code final (même si ça alourdie par grand chose)...

    Hum, même actuellement le mode -g3 est incompatible avec -o3... Bon, après, on est pas obligé d'aller jusqu'à trois, mais je préfère.
    ça impose de les faire propre (même celles de debug), et si un souci surviens on peux demander à refaire le test en activant certaines traces.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  14. #34
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 53
    Points : 16
    Points
    16
    Par défaut
    Merci pour toutes vos réponses, c'est vrai que je suis plus au moins débutante en c++ mais le projet est loin d'etre un projet pour débutant
    bref devant toutes ces solutions franchement je me sens un peu perdu là laquelle de vos solutions j'utilise vue que je suis pressé par le temps ?

  15. #35
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par annesophiedecar Voir le message
    Merci pour toutes vos réponses, c'est vrai que je suis plus au moins débutante en c++ mais le projet est loin d'etre un projet pour débutant
    bref devant toutes ces solutions franchement je me sens un peu perdu là laquelle de vos solutions j'utilise vue que je suis pressé par le temps ?
    A priori je dirais celle que tu as le mieux compris ou qui te parais le plus abordable, en gardant dans un coin de ton esprit les autres pour éventuellement les réutiliser plus tard.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  16. #36
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 53
    Points : 16
    Points
    16
    Par défaut
    Merci pour votre aide

  17. #37
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 53
    Points : 16
    Points
    16
    Par défaut
    salut,
    j'ai cru que cette erreur m'allait me laisser tranquille mais voilà qu'elle me réaparait dans un autre contexte voilà c'est une boucle simple qui met dans un vecteur de booléen sa taille est de 7129 un nombre aléatoire soit 0 soit 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    double r = 0.0;
        r = rng.uniform();
    std::vector<bool> b(7129);
     
       for (int j=0;j<7129;j++)
          {b[j]=rng.flip();
     eo.setB(b);
    cout<<"le num";
    cout<<j;
    //eo.invalidate();
    }
    à l'exécution la boucle s'arrete des fois en atteignant le nombre d'itération 7070 des fois 7026 des fois 6029 en m'affichant erreur de segmentation!

    j'arrive vraiment pas à voir l'erreur? est ce que quelqu'un pourrait m'aider?
    Jabbounet stp tu as compris quelque chose ?
    Merci .

  18. #38
    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
    Salut,
    Ca fait quoi cette fonction :

  19. #39
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 53
    Points : 16
    Points
    16
    Par défaut
    setB est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     void setB(vector<bool> & _b)
      {
        tab=_b;
      }
    avec tab c'est de taille 7129

  20. #40
    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
    Tu peux montrer l'intégralité de ta fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    double r = 0.0;
        r = rng.uniform();
    std::vector<bool> b(7129);
     
       for (int j=0;j<7129;j++)
          {b[j]=rng.flip();
     eo.setB(b);
    cout<<"le num";
    cout<<j;
    //eo.invalidate();
    }
    Car il semblerait que tu fasses sauter la pile. Deux raisons courantes : appels récursif ou tableau trop important sur la pile.
    De plus, dans le code que tu proposes, on ne sait pas trop si tu n'as pas oublié un '}' ou si la boucle va jusqu'au } que tu présentes.
    [EDIT] : tu ne ferais pas des allocations (des new) dans rng.flip() ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Erreurs de segmentation !
    Par anti-conformiste dans le forum Applications et environnements graphiques
    Réponses: 16
    Dernier message: 18/10/2005, 11h11
  2. Erreur de segmentation
    Par Trunks dans le forum C
    Réponses: 3
    Dernier message: 06/10/2005, 18h28
  3. Erreur de segmentation (Inconnue)
    Par Dark-Meteor dans le forum C
    Réponses: 5
    Dernier message: 08/09/2005, 13h42
  4. [Dev-C++] Erreur de segmentation...
    Par sas dans le forum Dev-C++
    Réponses: 11
    Dernier message: 26/03/2005, 14h25
  5. erreur de segmentation
    Par transistor49 dans le forum C++
    Réponses: 10
    Dernier message: 15/03/2005, 11h18

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