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>