Présentation des fichiers de mappe

Cette rubrique décrit les fichiers de mappe et leurs formats.

Le fichier de mappe de classeur est une mappe de symboles au format de commande d'adresse. Chaque symbole répertorié dans le fichier de mappe est associé à une classe de stockage (CL) et à un type (TY).

Les classes de stockage correspondent aux variables XMC_TY définies dans le fichier syms.h . Chaque classe de stockage appartient à l'un des types de section suivants:

.text
Contient des données en lecture seule (instructions). Les adresses répertoriées dans cette section utilisent le début de la section .text comme origine. La section .text peut contenir l'une des valeurs de classe de stockage (CL) suivantes:
base de documents
Table de débogage. Identifie une classe de sections ayant les mêmes caractéristiques que les données en lecture seule.
GL
Code de colle. Identifie une section ayant les mêmes caractéristiques qu'un code de programme. Ce type de section comporte du code pour l'interface avec une routine dans un autre module. Une partie de l'exigence du code d'interface est de gérer la structure de table des matières (table des matières) en fonction de l'adresse de l'appel.
demande d"achat
Code du programme. Identifie les sections qui fournissent des instructions exécutables pour le module.
R0
Données en lecture seule. Identifie les sections qui contiennent des constantes qui ne sont pas modifiées pendant l'exécution du programme.
To
Réservé pour une utilisation future.
TI
Réservé pour une utilisation future.
XO
Code des opérations étendues. Identifie une section de code qui doit être traitée comme une instruction de pseudo-machine.
.data
Contient des données initialisées en lecture-écriture. Les adresses répertoriées dans cette section utilisent le début de la section .data comme origine. La section .data peut contenir l'un des types de valeur de classe de stockage (CL) suivants:
service d"annuaire
descripteur. Identifie un descripteur de fonction. Ces informations sont utilisées pour décrire des pointeurs de fonction dans des langues telles que C et Fortran.
RW
Lecture des données d'écriture. Identifie une section qui contient des données qui sont connues pour nécessiter une modification pendant l'exécution du programme.
variance de planning
SVC. Identifie une section de code qui doit être traitée comme un appel de surveillance.
T0
TOC Anchor. Utilisé uniquement par le symbole de table des matières prédéfini. Identifie le symbole spécial de la table des matières utilisé uniquement par l'en-tête de table des matières.
commande de test
Entrée de table des matières. Identifie les données d'adresse qui se trouvent dans la table des matières.
données transitoires
Entrée de données de table des matières. Identifie les données qui se trouvent dans la table des matières.
accusé de réception non numéroté
Non classifié. Identifie les données qui contiennent des données d'une classe de stockage inconnue.
.bss
Contient des données en lecture-écriture qui ne sont pas initialisées. Les adresses répertoriées dans cette section utilisent le début de la section .data comme origine. La section .bss contient l'une des valeurs de classe de stockage (CL) suivantes:
station de base
Classe BSS. Identifie une section contenant des données non initialisées.
contrat de sous-traitance
Unnommé Fortran Common. Identifie une section contenant des données de lecture / écriture.

Les types correspondent aux variables XTY_TY définies dans le fichier syms.h . Type (TY) Peut être l'une des valeurs suivantes:

Article Descriptif
ER Référence externe
LD Définition de libellé
SD Définition de section
CM Définition commune BSS

Le fichier de mappe pour l'extension de noyau de démonstration est le suivant. Ce fichier a été créé en raison de l'option -bmap:demokext.map de la commande ld .

 1   ADDRESS MAP FOR demokext                                 SOURCE-FILE(OBJECT) or
 2   *IE ADDRESS  LENGTH AL CL TY Sym#  NAME                  IMPORT-FILE{SHARED-OBJECT}
 3   --- -------- ------ -- -- -- ----- --------------------- ---------------------------
 4    I                        ER S1    _system_configuration /lib/syscalls.exp{/unix}
 5    I                        ER S2    fp_open               /lib/kernex.exp{/unix}
 6    I                        ER S3    fp_close              /lib/kernex.exp{/unix}
 7    I                        ER S4    fp_write              /lib/kernex.exp{/unix}
 8    I                        ER S5    sprintf               /lib/kernex.exp{/unix}
 9       00000000 000360  2 PR SD S6    <>                    demokext.c(demokext.o)
10       00000000           PR LD S7    .demokext
11       00000210           PR LD S8    .close_log
12       00000264           PR LD S9    .write_log
13       000002F4           PR LD S10   .open_log
14       00000360 000108  5 PR SD S11   .strcpy               strcpy.s(/usr/lib/libcsys.a[strcpy.o])
15       00000468 000028  2 GL SD S12   <.sprintf>            glink.s(/usr/lib/glink.o)
16       00000468           GL LD S13   .sprintf
17       00000490 000028  2 GL SD S14   <.fp_close>           glink.s(/usr/lib/glink.o)
18       00000490           GL LD S15   .fp_close
19       000004C0 0000F8  5 PR SD S16   .strlen               strlen.s(/usr/lib/libcsys.a[strlen.o])
20       000005B8 000028  2 GL SD S17   <.fp_write>           glink.s(/usr/lib/glink.o)
21       000005B8           GL LD S18   .fp_write
22       000005E0 000028  2 GL SD S19   <.fp_open>            glink.s(/usr/lib/glink.o)
23       000005E0           GL LD S20   .fp_open
24       00000000 0000F9  3 RW SD S21   <_$STATIC>            demokext.c(demokext.o)
25     E 000000FC 000004  2 RW SD S22   demokext_j            demokext.c(demokext.o)
26   *   00000100 00000C  2 DS SD S23   demokext              demokext.c(demokext.o)
27       0000010C 000000  2 T0 SD S24   <TOC>
28       0000010C 000004  2 TC SD S25   <_$STATIC>
29       00000110 000004  2 TC SD S26   <_system_configuration>
30       00000114 000004  2 TC SD S27   <demokext_j>
31       00000118 000004  2 TC SD S28   <sprintf>
32       0000011C 000004  2 TC SD S29   <fp_close>
33       00000120 000004  2 TC SD S30   <fp_write>
34       00000124 000004  2 TC SD S31   <fp_open>

Dans le fichier de mappe ci-dessus, la section .data commence à l'instruction de la ligne 24:

24       00000000 0000F9  3 RW SD S21   <_$STATIC>          demokext.c(demokext.o)

La table des matières (Table des matières) commence à la ligne 27:

27       0000010C 000000  2 T0 SD S24   <TOC>