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 :

[Linux/gcc] Fichier de mapping


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par d�faut [R�solu][Linux/gcc] Fichier de mapping
    Bonjour,

    J'ai parcourus l'aide de gcc mais je n'ai pas reussi � touver comment g�n�rer un fichier de mapping (liste et adresse des variables globales et static).

    Je l'ai deja fait avec d'autres compilateurs mais jamais avec gcc...

    Est ce que c'est possible ?

    Merci

  2. #2
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par d�faut
    Et bien apr�s relecture du man de gcc, ca ne semble pas possible... Je suis quand meme tr�s �tonn� qu'une fonctionnalit� aussi basique ne soit pas pr�sente... C'est bizarre mais vu que le man n'en parle pas...

  3. #3
    Membre Expert
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    941
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 941
    Par d�faut
    Salut,

    Pardonne mon ignorance, mais c'est quoi un fichier de mapping exactement ? A quoi �a sert ? Sur quels environnements tu en utilisais ?

  4. #4
    R�dacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Mai 2007
    Messages
    11 517
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par d�faut
    Ca ne serait une fonctionnalit� du linker plut�t que de donner les adresses finales dans un binaire ?

    man ld
    Raymond
    Vous souhaitez participer � la rubrique R�seaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs syst�me et r�seau � configurer leurs �quipements SNMP r�seau.
    e-verbe Un logiciel de conjugaison des verbes de la langue fran�aise.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par d�faut
    Salut,

    Citation Envoy� par Noxen Voir le message
    Pardonne mon ignorance, mais c'est quoi un fichier de mapping exactement ? A quoi �a sert ?
    Le fichier de mapping, c'est le fichier qui te donne l'adresse de tes variables (static et globales). Cela permet d'aider au debug, notamment pour des programmes sans symbols (ou seul les adresses sont disponibles).

    Citation Envoy� par Noxen Voir le message
    Sur quels environnements tu en utilisais ?
    Linux aussi mais c'etait de la cross compilation. La, c'est une compilation pour linux.

    Citation Envoy� par ram_0000 Voir le message
    Ca ne serait une fonctionnalit� du linker plut�t que de donner les adresses finales dans un binaire ?

    man ld
    Ca a l'air bien ca... Mais c'est gcc qui genere mon executable. Il fait un appel � ld ? Ou il a aussi un linker int�gr� ? En tout cas, merci j'ai l'impression que je vais pouvoir m'en tirer comme ca

  6. #6
    Membre exp�riment�
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    190
    D�tails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 190
    Par d�faut
    Salut,

    Tu devrais regarder du c�t� de nm et de objdump.

  7. #7
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par d�faut
    Salut,

    Merci pour vos r�ponses.

    Citation Envoy� par Montag Voir le message
    Tu devrais regarder du c�t� de nm et de objdump.
    Le probleme c'est que ces 2 programmes vont chercher dans l'executable les symbols (qui n'existent pas sur une version release). Donc c'est pas ce que je veux.

    Citation Envoy� par Jean-Marc.Bourguet Voir le message
    Oui. La structure traditionnelle des compilateurs sous Unix est d'avoir des executables separes pour:
    - le preprocesseur
    - le compilateur (parfois plusieurs executables)
    - l'assembleur
    - le linker
    Des que les machines ont eu assez de memoire pour le faire, les differents executables du compilateur ont ete fusionne car ils n'avaient pas d'autres raisons d'etre. GCC a meme, plus recemment, fusionne le preprocesseur dans le compilateur mais continue a utiliser un assembleur et un editeur de liens externe (et sur des platerformes autres que Linux, pas necessairement fournis par le projet GNU).
    Merci pour ces explications. Mais il y a quelque chose que je ne comprends pas. J'ai regard� le man de ld et il y a le parametre -Map qui fait ce que je veux. Mais ce parametre ne marche pas avec g++. Comment ca se fait ?

    Sinon, j'ai essay� de linker avec ld mais il semble qu'il ne me trouve pas beaucoup de symbols... Il faut inclure toutes les librairies necessaires ??? J'ai essay� de mettre un repertoire (option -L) mais ca ne marche pas

  8. #8
    Expert confirm�

    Inscrit en
    Novembre 2005
    Messages
    5 145
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par d�faut
    Citation Envoy� par hwoarang Voir le message
    Mais c'est gcc qui genere mon executable. Il fait un appel � ld ?
    Oui. La structure traditionnelle des compilateurs sous Unix est d'avoir des executables separes pour:
    - le preprocesseur
    - le compilateur (parfois plusieurs executables)
    - l'assembleur
    - le linker
    Des que les machines ont eu assez de memoire pour le faire, les differents executables du compilateur ont ete fusionne car ils n'avaient pas d'autres raisons d'etre. GCC a meme, plus recemment, fusionne le preprocesseur dans le compilateur mais continue a utiliser un assembleur et un editeur de liens externe (et sur des platerformes autres que Linux, pas necessairement fournis par le projet GNU).

  9. #9
    Membre Expert
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    941
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 941
    Par d�faut
    Ok, merci hwoarang . Va falloir que je me trouve de la litt�rature sur le fonctionnement des ordinateurs

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [gcc] Fichier linux/limits.h introuvable
    Par Trap D dans le forum SUSE
    R�ponses: 2
    Dernier message: 21/09/2009, 21h48
  2. R�ponses: 4
    Dernier message: 10/11/2005, 11h45
  3. [HIBERNATE] Fichier de mapping
    Par SEMPERE Benjamin dans le forum Hibernate
    R�ponses: 2
    Dernier message: 20/10/2005, 10h40
  4. [Hibernate] [Eclipse] Cr�ation du fichier de mapping
    Par Willy7901 dans le forum Eclipse Java
    R�ponses: 2
    Dernier message: 11/08/2005, 17h54
  5. [linux][gcc] Comment travaille t-on avec plusieurs fichiers?
    Par kaygee dans le forum Autres �diteurs
    R�ponses: 2
    Dernier message: 02/04/2004, 17h48

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