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é.
Remarque: Le paramètre ImportPointer ou ExportPointer peut également être défini sur tout symbole de zone de données statiques exporté ou pointeur de fonction contenu dans le module associé. Il s'agit généralement du pointeur de fonction renvoyé par Charge du module spécifié.

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 .