begin process at 2012 05 28 19:38:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

[Débutant]Problème en mode Debug Seulement


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[Débutant]Problème en mode Debug Seulement

mercredi 10 octobre 2007 à 15:24:32 | [Débutant]Problème en mode Debug Seulement

italyblaa

Bonjour,
J'ai un petit problème avec ce  code
l'application marche super bien en mode realese mais une fois sur Debug ça plante avec l'erreur suivante :

[B][SIZE="2"]Exception non gérée à 0x7c911230 dans BackGround_ForeGround.exe: Point d'arrêt utilisateur.[/SIZE]
[CODE]if (!HeapValidate(_crtheap, 0, NULL))
        {
            if (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
            {
                _doserrno = ERROR_CALL_NOT_IMPLEMENTED;
                errno = ENOSYS;
            }
            else
                retcode = _HEAPBADNODE;
        }
        return retcode;
}[/CODE]
[/B]


et mon code le voilà :

[CODE]void CTelemetre::Ecriture_Fichier_Trajectoire(CString fichier_resultat)
{
    [LIST=1]
[*]// Affichage des trajectoires
[*]    // Graphe 2
[*]    Xmin = Xmin1;
[*]    Ymin = Ymin1;
[*]    Xmax = Xmax1;
[*]    Ymax = Ymax1;
[*]    g1->Plume(NOIR);
[*]    g1->Viewport(52,97,5,98);
[*]    g1->Echelle(Xmin, Xmax, pax, ifx);
[*]    g1->Echelle(Ymin, Ymax, pay, ify);
[*]    g1->Clear(BLANC);
[*]    g1->Window(Xmin, Xmax, Ymin, Ymax);
[*]    g1->Grid(pax,pay);
[*]    g1->Grad_X(Ymin, pax, ifx);
[*]    g1->Grad_Y(Xmin,pay,ify);
[*]    Afficher_Marquage_Central(g1);

[*]    // Trajectoires intéressantes
[*]    if (compt>0)
[*]    {
[*]        CVehicule* traj_temp = new CVehicule[compt];

[*]        FILE* fichier_trajectoire = fopen(fichier_resultat, "a");
[*]    
[*]        fprintf(fichier_trajectoire, Fichier_telemetre.Mid(1+Fichier_telemetre.ReverseFind(_T('\\')))+"\n");

[*]        for (int k=1;k<numero;k++)
[*]        {
[*]            int valeur=0;
[*]            int* index = new int[compt];

[*]            for (int i=0;i<compt;i++)
[*]            {
[*]                if (traj[i].numero==k)
[*]                {
[*]                    index[valeur]=i;
[*]                    valeur++;
[*]                }
[*]            }

[*]            if (valeur > 40)            
[*]            {
[*]                int nbre_position[8] = {0};
[*]                char sens;

[*]                // Détermination du sens de circulation du véhicule
[*]                if (traj[index[1]].posVeh[0] < traj[index[39]].posVeh[0])
[*]                {
[*]                    sens = 'D';
[*]                } else {
[*]                    sens = 'G';
[*]                }
[*]                    
[*]                    for (i=0;i<valeur;i++)
[*]                    {
[*]                        traj[index[i]].sens= sens;
[*]                        // calcul de la vitesse par les échos telemetres
[*]                        [COLOR="Red"]traj[index[i]].Vitesse=Calcul_Vitesse(traj,max(0,i-1),i);[/COLOR]

[*]                        if (traj[index[i]].Vitesse>35 || traj[index[i]].Vitesse<0.0001)                // pour eviter les vitesses incoherentes
[*]                            traj[index[i]].Vitesse = traj[index[max(0,i-1)]].Vitesse;

[*]                        // position
[*]                        traj_temp[i].posVeh[0] = traj[index[i]].posVeh[0];
[*]                        traj_temp[i].posVeh[1] = traj[index[i]].posVeh[1];
[*]                        traj_temp[i].Vitesse = traj[index[i]].Vitesse;
[*]                        traj_temp[i].Temps_PC = traj[index[i]].Temps_PC;
[*]                    }

[*]                    CVehicule* traj_lissee = new CVehicule[valeur];
[*]                    Lissage_Trajectoire(traj_temp, valeur, traj_lissee);
[*]                    TracerTrajectoireLissee(traj_lissee, valeur, numero);
[*]                    
[*]                


[*]                    int position_moy = 0;
[*]                    double vitesse_moy = 0;
[*]                    UpdateData(true);
[*]                    for (i=0;i<valeur;i++)
[*]                    {
[*]                        // Position du véhicule sur la chaussée
[*]                        Calcul_Position_Chaussee(index[i],traj_lissee[i].posVeh[0], traj_lissee[i].posVeh[1], traj[index[valeur-1]].Largeur,sens, m_largeur_chaussee);
[*]                        traj_temp[i].position = traj[index[i]].position;
[*]                        nbre_position[traj[index[i]].position]++;

[*]                        vitesse_moy += traj[index[i]].Vitesse;

[*]                        // Ecriture du fichier Trajectoire
[*]                        fprintf(fichier_trajectoire,"%I64d\t%d\t%c\t%d\t%f\t%d\t%f\t%f\t", traj[index[i]].Temps_PC,NUMERO,traj[index[i]].sens,traj[index[i]].position,traj[index[i]].ecart,traj[index[i]].image,traj[index[i]].posVeh[0],traj[index[i]].posVeh[1]);    
[*]                        fprintf(fichier_trajectoire,"%f\t",traj[index[i]].Vitesse);
[*]                        fprintf(fichier_trajectoire,"%f\t%f\tX[]=",traj[index[valeur-1]].Longueur, traj[index[valeur-1]].Largeur);
[*]                        for (int j=0;j<traj[index[i]].Taille_XY;j++)
[*]                            fprintf(fichier_trajectoire," %f",traj[index[i]].Point_X[j]);
[*]                        fprintf(fichier_trajectoire," Y[]=");
[*]                        for (j=0;j<traj[index[i]].Taille_XY;j++)
[*]                            fprintf(fichier_trajectoire," %f",traj[index[i]].Point_Y[j]);
[*]                        fprintf(fichier_trajectoire,"\n");
[*]                    }

[*]                    int *maxi;
[*]                    maxi = max_element(nbre_position,nbre_position+8);
[*]                    for (i=0;i<8;i++)
[*]                        if (*maxi == nbre_position[i])
[*]                            position_moy = i;

[*]                    // Vitesse moyenne (en m/s)
[*]                    vitesse_moy /= valeur;

[*]                    delete[] traj_lissee;

[*]                    
[*]                    int Sens = (sens=='D') ? 1 : 0;
[*]                    Gstatistiques.Tracer_Statistiques(position_moy, vitesse_moy, Sens);

[*]                    
[*]                    UpdateData(false);
[*]                    if (m_courbes_vitesse)
[*]                    {
[*]                        GVitesse.Tracer_Courbe_Vitesse(traj_temp,valeur, vitesse_moy);
[*]                        GVitesse.DoModal();
[*]                    }
[*]                    if (m_position)
[*]                    {
[*]                        Gposition.Tracer_Courbe_Position(traj_temp, valeur, position_moy);
[*]                        Gposition.DoModal();
[*]                    }

[*]                    NUMERO++;

[*]            }
[*]            
[*]        
[*]            delete[] index;
[*]            
[*]        }

[*]        fprintf(fichier_trajectoire,"\n");

[*]        fclose(fichier_trajectoire);
[*]        
[*]        delete[] traj_temp;
[*]    }


[*]}[/CODE]
[/LIST]
j'ai mis en rouge la ligne (50) où je pense il fait planter l'appli parce que si je met cette ligne en commentaire ça marche, mais avec des resultats bizarre à la fin  voilà.
Merci.
mercredi 10 octobre 2007 à 20:47:40 | Re : [Débutant]Problème en mode Debug Seulement

The_Guardian

Bonsoir,

ok tu as une segfault qui se balade, vérifie que tu accèdes pas n'importe où dans ton tableau traj que le tableau traj est bien initialisé, car j'ai pas vu où c'était d'ailleurs dans ton bout de code et puis méfie toi avec tes variables car des fois "i" va de 0 à compt et des fois de 0 à valeur ca peut craindre.

===

Une autruche ne se cuit pas aux petits lardons
jeudi 11 octobre 2007 à 08:14:14 | Re : [Débutant]Problème en mode Debug Seulement

Pistol_Pete

Salut

Bah tu as quand meme de la chance que ca plante en mode debug. Là tu as une explication sur l'erreur et la ligne ou celle ci c'est produit..
C'est souvent l'inverse qui se produit: le code marche en debug mais pas en release. Là c'est beaucoup plus difficile de trouver la segfault.

A+
vendredi 12 octobre 2007 à 09:02:38 | Re : [Débutant]Problème en mode Debug Seulement

italyblaa

bonjour,
j'ai regardé un peu partout dans le code mais je vois pas d'où ça viens l'erreur ?!!
vendredi 12 octobre 2007 à 10:07:04 | Re : [Débutant]Problème en mode Debug Seulement

Pistol_Pete

Une idée comme ca en l'air, Etudie le message de retour de ton fopen et met une protection. Si l'ouverture de ton fichier plante, ton programme aussi.
Ca peut venir de la.
A+


Cette discussion est classée dans : fichier, position, index, vitesse, traj


Répondre à ce message

Sujets en rapport avec ce message

Position dans un fichier [ par sebastienbro ] Bonjours,je voudrais savoir comment on pourrait avoir la position dans un fichier, à la manière d'un FilePos() en Delphi. J'ai bien trouvé SetFilePoin ERREUR redefinition, different basic types ( tres URGENT) [ par moudugenou ] Bonsoir, Tout le reste marche dans mon programme sauf cette fonction qui me resiste...Quand je compile visual C++ m'indique ceci: error C2371: 'pose lire un fichier a l'envers en C (pas C++) [ par B_R_ ] Bonjour,Je suis à une position donnée dans un fichier (apres plusieurs fgets() )et j'ai besoin de recupérer un bloc de taille indefinie (mais marqué p Hauteur et largeur d'un fichier jpeg [ par tintin72 ] Salut,Je cherche comment faire pour charger un fichier jpeg afin de récupérer sa hauteur et sa largeur.En fait je veux pas charger l'image entièrement Fonctions de gestion de fichier en binaire ?? [ par SnOOpss ] Bonjour. Je suis en train d essayer de convertir un programme d'un autre langage et je cherche des fonctions particulieres, par exmple. Ceci lit N b parcours d'un fichier de structures [ par playmo420 ] Salut. Bon, j'ai un petit problème. Je voudrais parcourir un fichier de structures pour savoir combien il y en a à l'intérieur. Voilà mon bout de code fichier index [ par alma3rifa ] qui peut m'aider à faire une gestion en c à l'aide des fichiers indexé ?Merci Fichier accès direct [ par ricomiracle ] Bonjour,Je dois réaliser une interface type base de donnée avec un fichier de données. Pour optimiser les perf, j'utilise un fichier d'accès direct (j Temps d'execution d'une commande [ par erazor ] Je suis actuelement face a un problème assez étrange sur l'un de mes programmes. Dans une classe contenant des objets sous forme de tableaux de struc Erreur création d 'index [ par RootASM ] Bonjour,Voila, je crée un fichier qui contient des informations sur des membres d'un club et pour éviter de tout le temps accéder au fichier, je crée


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales