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

Linux Discussion :

Mon compilo ne semble pas "lire" #include <sys/reg.h>


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2004
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 187
    Par défaut Mon compilo ne semble pas "lire" #include <sys/reg.h>
    Bonjour à tous!
    Je voudrais suivre pas à pas l'article de linux magazine n°114 sur PTRACE et j'ai donc recopié l'exemple suivant:
    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
    #include <sys/ptrace.h>
    #include <sys/syscall.h>
    #include <sys/types.h>
    #include <sys/wait.h>
    #include <sys/reg.h>
    #include <sys/unistd.h>
    #include <stdio.h>
     
    int main()
    {
    	pid_t child;
    	int status;
     
    	if((child=fork())==0)
    	{
    		ptrace(PTRACE_TRACEME,0,NULL,NULL);
    		execl("/bin/ls","/bin/ls","/",NULL);
    	}
     
    	for(;;)
    	{
    		wait(&status);
    		if(WIFEXITED(status))break;
    		long orig_eax=ptrace(PTRACE_PEEKUSER,child,4*ORIG_EAX,NULL);
    		printf("Appel systeme numero: %ld\n",orig_eax);
    		ptrace(PTRACE_CONT,child,NULL,NULL);
    	}
     
    	return 0;
    }
    lorsqu'ensuite je tape:
    gcc -o strace strace.c
    voici la réponse du compilateur:
    /media/VGData1/1/Developpement/projets/cpp/strace.c||In function ‘main’
    /media/VGData1/1/Developpement/projets/cpp/strace.c|24|erreur: ‘ORIG_EAX’ undeclared (first use in this function)|
    /media/VGData1/1/Developpement/projets/cpp/strace.c|24|erreur: (Each undeclared identifier is reported only once|
    /media/VGData1/1/Developpement/projets/cpp/strace.c|24|erreur: for each function it appears in.)|
    ||=== Build finished: 3 errors, 0 warnings ===|
    Le fichier reg.h est bien présent sur mes machines (un portable sous open suse 11.0 et une tour avec fedora 10)
    Quelqu'un aurait une idée?

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Ce code compile correctement sous ubuntu 8.10 et centos 5.2. Peux tu tenter de rajouter en première ligne de ton fichier (c'est important) un
    juste pour vérifier.
    Cordialement.

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2004
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 187
    Par défaut
    Rien n'y fait...

  4. #4
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    As tu une archi 64 bits?
    As tu essayer d'inclure <sys/user.h>?
    Peut tu nous donner des précisions sur ton système?

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2004
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 187
    Par défaut
    Voici quelques information sur mon systeme:
    grep "model name" /proc/cpuinfo
    model name : Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz
    model name : Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz

    head /etc/issue
    Fedora release 10 (Cambridge)
    Kernel \r on an \m (\l)

    uname -a
    Linux chazam.portable 2.6.27.7-134.fc10.x86_64 #1 SMP Mon Dec 1 22:21:35 EST 2008 x86_64 x86_64 x86_64 GNU/Linux
    J'ai également éssayé d'inclure "sys/user.h" comme tu me l'as dit et j'ai obtenu un message supplémentaire du compilateur:
    /usr/include/sys/user.h|32|erreur: expected specifier-qualifier-list before ‘__uint16_t’|
    J'ai de plus en plus l'impréssion qu'il s'agit d'une erreur très bête de ma part, mais j'ai beau retourner ça dans tous les sens....

  6. #6
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Vérifie l'emplacement du fichier reg.h, est il bien ici : /usr/include/sys/reg.h, le cas échéant, peux tu nous l'afficher, je veux dire nous donner tout le code qu'il y a dedans s'il te plaît.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. mon compilo ne reconnait pas le type GLubyte
    Par superC dans le forum OpenGL
    Réponses: 4
    Dernier message: 23/01/2007, 19h39
  2. mon compilo n'accèpte pas unsigned!
    Par moon93 dans le forum C
    Réponses: 24
    Dernier message: 08/08/2006, 10h20
  3. Mon compilo ne reconnait pas les UINT8
    Par baert dans le forum C++
    Réponses: 11
    Dernier message: 08/02/2006, 16h08

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