Partage
  • Partager sur Facebook
  • Partager sur Twitter

Besoin d'aide tres tres urgent

    15 juin 2006 à 18:14:47

    <question></question>Bonjour à tous! :) Est ce que quelqu'un pourrait m'aider?je voudrais savoir si quelqu'un connait comment marche le debuggeur pour des erreurs de segmentation,pour savoir exactement où se situe l'erreur de segmentation dans le programme écrit en langage C et utilisant opengl et inrimage . :euh:
    C'est très urgent.
    Merci d'avance de vos réponses.





    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      15 juin 2006 à 18:52:10

      Met ton code.Sinon on ne peut pas t'aider
      • Partager sur Facebook
      • Partager sur Twitter
        15 juin 2006 à 21:04:45

        Ca dépend sur quoi tu compiles, si tu as dev cpp ou codeblocks aucun problème tu mets l'option debug du compilateur dans et tu fait un mode pas à pas jusqu'à trouver la ligne qui cause l'erreur de segmentation.
        Sous linux il te faudra utilise l'option -ggdb de gcc mais c'est beaucoup moins intuitif à utiliser. Regarde le man de gdb et gcc si c'est le cas.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          16 juin 2006 à 15:15:17

          Voici son code (elle me la donne par MP)
          #include <GL/glut.h>
          #include <stdio.h>
          #include<math.h>
          #include<inrimage/image.h>
          #include<assert.h>


          float rota=0.2;



          static char version[]="1.00";
          static char usage[]="[input][output][-sb seuil]";
          static char detail[]="";




          static void keyboard(unsigned char k,int x,int y){
          switch(k){
          case 'q':
          case 'Q':
          case 27:
          glutLeaveMainLoop();
          break;
          case 'd' : x_b-=0.2;
          break;
          case 'm' : x_b+=0.2;
          break;
          }
          }




          static init(){
          glClearColor(0.0,0.0,0.0,0.0);
          }


          static void reshape(int width,int height){
          glViewport(0,0,(GLint) width,(GLint) height);
          glMatrixMode(GL_PROJECTION); glLoadIdentity();
          gluOrtho2D(-1,10,-1,10);
          glMatrixMode(GL_MODELVIEW);glLoadIdentity();
          }





          /* fonction qui renvoie le nombre de lignes de l'image */


          int lignes(unsigned char *image, Fort_int lfmt[9]){
          return NDIMY;
          }

          /* fonction qui renvoie le nombre de colonnes de l'image */


          int colonnes(unsigned char *image, Fort_int lfmt[9]){
          return NDIMX;
          }



          void tracer_point(unsigned char *im,Fort_int lfmt[9]){
          int i,j;



          for(i=0;i<lfmt[I_DIMY];i++){
          for(j=0;j<lfmt[I_DIMX];j++){
          printf(" %d",im[i*DIMX + j]);

          }
          }

          }



          void repere(unsigned char *image,Fort_int lfmt[9]){



          int x,y;


          x=lfmt[I_NDIMX];
          y=lfmt[I_NDIMY];


          glBegin(GL_LINES);
          glColor3f(1.0,0.0,0.0);
          glVertex3f(0,0,0);
          glVertex3f(x+20,0,0);
          glEnd();

          glBegin(GL_LINES);
          glColor3f(0.0,1.0,0.0);
          glVertex3f(0,0,0);
          glVertex3f(0,y+20,0);
          glEnd();

          glBegin(GL_LINES);
          glColor3f(0.0,0.0,1.0);
          glVertex3f(0,0,0);
          glVertex3f(0,0,276);
          glEnd();

          }


          void tracer_point2(unsigned char *image,Fort_int lfmt[9]){
          int i,j;
          int k;
          glBegin(GL_POINTS);

          for(i=0;i<lfmt[I_DIMY];i++){
          for(j=0;j<lfmt[I_DIMX];j++){
          k=image[i*lfmt[I_DIMX] + j];
          glVertex3i(i,j,k);

          }
          }
          glEnd();
          }



          static void display(void){
          unsigned char *image;
          Fort_int lfmt[9];
          glClear(GL_COLOR_BUFFER_BIT);
          // glRotatef(rota,1.0,1.0,0.0);
          // tracer_point2(image,lfmt);
          repere(image,lfmt);
          glFlush();
          glutPostRedisplay();





          }








          int main(int argc,char **argv){

          char fname[256];
          struct image*nf;
          Fort_int lfmt[9];
          unsigned char *buf;



          inr_init(argc,argv,version,usage,detail);



          infileopt(fname);


          nf=image_(fname,"e","",lfmt);




          buf=(unsigned char *)i_malloc(lfmt[I_NDIMX]*lfmt[I_NDIMY]*sizeof(unsigned char));

          c_lect(nf,lfmt[I_NDIMY],buf);
          fermnf_(&nf);

          // tracer_point(buf,lfmt);



          glutInit(&argc,argv);
          glutInitDisplayMode(GLUT_RGBA|GLUT_SINGLE);
          glutCreateWindow("TME 7 : repere");
          glutDisplayFunc(display);


          glutReshapeFunc(reshape);

          init();
          glutMainLoop();







          /*
          outfileopt(fname);
          nf= image_(fname, "c","",lfmt);

          c_ecr(nf,lfmt[I_NDIMY],buf);
          fermnf_(&nf);
          */

          i_Free(&buf);
          return 0;
          }
          • Partager sur Facebook
          • Partager sur Twitter

          Besoin d'aide tres tres urgent

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown