Sous-routine loadbind
Objectif
Fournit une résolution d'exécution spécifique des symboles différés d'un module.
Syntaxe
int loadbind( Flag, ExportPointer, ImportPointer)
int Flag;
void *ExportPointer, *ImportPointer;Descriptif
La sous-routine Loadbind contrôle la résolution d'exécution des symboles importés non résolus d'un module d'objet chargé précédemment.
La sous-routine Loadbind est utilisée lorsque deux modules sont chargés. Le module A, un module objet chargé lors de l'exécution avec le sous-programme Charge , a désigné que certains de ses symboles importés soient résolus ultérieurement. Le module B contient des symboles exportés pour résoudre les importations non résolues de module A.
Pour que les symboles importés du module A soient résolus jusqu'à ce que le service Loadbind soit appelé, vous pouvez spécifier l'indicateur de sous-routine Charge , L_NOAUTOREPORT, lors du chargement du module A.
Lorsqu'un processus 32 bits s'exécute sous le contrôle Ptrace , des parties de l'espace adresse du processus sont recopiées une fois le traitement Loadbind terminé. Le texte principal du programme (chargé dans le segment 1) et les modules de bibliothèque partagée (chargés dans le segment 13) sont recopiés. Tout point d'arrêt ou toute autre modification de ces segments doit être réinséré après l'appel Loadbind .
Lorsqu'un processus 32 bits s'exécute sous les appels de contrôle Ptrace Loadbind, le débogueur est averti en définissant l'indicateur W_SLWTED dans le statut renvoyé par Attendre.
Lorsqu'un processus 64 bits sous Ptrace contrôle les appels Loadbind, le débogueur n'est pas averti et l'exécution du processus en cours de débogage se poursuit normalement.
Paramètres
| Article | Descriptif |
|---|---|
| Indicateur | Actuellement non utilisé. |
| ExportPointer | Indique le pointeur de fonction renvoyé par la sous-routine Charge lorsque le module B a été chargé. |
| ImportPointer | Indique le pointeur de fonction renvoyé par la sous-routine Charge lorsque le module A a été chargé. |
Valeurs renvoyées
Un 0 est renvoyé si le sous-programme Loadbind a abouti.
Codes d'erreur
Si une erreur est détectée, le système renvoie la valeur -1 et la variable globale errno indique le code d'erreur associé :
| Article | Descriptif |
|---|---|
| EINVAL | Indique que le paramètre ImportPointer ou ExportPointer n'est pas valide (le pointeur vers le paramètre ExportPointer ou ImportPointer ne correspond pas à un module de programme ou à une bibliothèque chargée). |
| ENOMEM | Indique que le programme requiert plus de mémoire que le maximum autorisé par le système. |
Une fois qu'une erreur est renvoyée par le sous-programme Loadbind , vous pouvez également utiliser la sous-routine Loadquery pour obtenir des informations supplémentaires sur l'erreur Loadbind .