Maison >développement back-end >C++ >Comment puis-je récupérer et démanteler les informations sur les symboles d'une bibliothèque partagée (fichier .so) ?
Récupération des informations sur les symboles d'une bibliothèque partagée
Lorsque vous travaillez avec des bibliothèques partagées (fichiers .so), il devient souvent nécessaire d'examiner leurs symboles pour mieux comprendre leur structure et leur interdépendance. Ce guide explorera diverses méthodes pour répertorier les symboles dans un fichier .so, y compris des techniques permettant d'identifier leur origine et leurs dépendances.
Commande nm
L'utilitaire nm est un outil courant outil pour lister les symboles dans les fichiers exécutables et de bibliothèque. Il fournit des informations détaillées sur les noms, adresses et caractéristiques des symboles. Pour répertorier les symboles dans un fichier .so à l'aide de nm :
nm -gD yourLib.so
L'option -gD demande à nm d'afficher les noms de symboles et les informations de débogage GNU associées.
Démangulation des symboles C
Dans le cas des bibliothèques C, les symboles sont souvent modifiés à des fins d'optimisation. Pour démêler ces symboles et les rendre plus lisibles, utilisez l'option -C :
nm -gDC yourLib.so
Bibliothèques partagées au format ELF
Si le fichier .so est au format ELF , deux outils alternatifs peuvent être utilisé :
objdump
Objdump fournit des informations complètes sur les fichiers ELF, y compris une liste de symboles :
$ objdump -TC libz.so
L'option -C démêle C symboles, amélioration lisibilité.
readelf
Readelf propose une analyse riche en fonctionnalités des fichiers ELF, y compris des informations sur les symboles :
$ readelf -Ws libz.so
L'option -Ws affiche une table de symboles détaillée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!