faire gdb charger une bibliothèque partagée à partir d'un chemin d'accès spécifique
J'ai eu un cœur, alors que l'exécution d'une application et je l'ai enregistré le fichier exécutable, le fichier mémoire et une bibliothèque partagée qui l'utilisation de l'application dans /tmp
de les vérifier plus tard. J'ai ensuite modifié la bibliothèque, reconstruit et il a commencé l'exécutable de nouveau.
Maintenant, quand je suis en train de déboguer le noyau, gdb est le chargement de la bibliothèque partagée de son tracé d'origine et pas à partir du répertoire /tmp
où j'ai enregistré la bibliothèque d'origine.
Par exemple, le chemin d'origine a été /opt/mydir/lib/libmylib.so.0
.
gdb est le chargement de cette bibliothèque partagée, alors que je veux qu'il se charge /tmp/libmylib.so.0
.
L'application utilise également certaines bibliothèques standards qui sont dans /usr/lib
et /lib
répertoires donc je ne veux pas de ces chemins pour aller se changer. Juste envie de changer /opt/mydir/lib/
-> /tmp
. Comment puis-je le faire?
OriginalL'auteur ashish | 2015-11-24
Vous devez vous connecter pour publier un commentaire.
La plus simple solution est de rétablir momentanément
/opt/mydir/lib/libmylib.so.0
à la copie qui a été utilisé au crash de temps (c'est à dire celui qui est actuellement en/tmp
), d'analyser la base, puis restaurer la nouvelle version.Si vous ne voulez pas le faire,
set solib-search-path
etset sysroot
sont vos amis.Notez que vous devez définir à la fois avant de charger le
core
. Cette séquence devrait fonctionner:OriginalL'auteur Employed Russian