ldd, nm, strace, ltrace

Categories: Savoir
ldd, nm, strace, ltrace

Parfois quand on utilise un programme sous Linux, on se retrouve avec un joli message d'erreur, du genre "machin.so.1: No such file". Quelques petits programmes peuvent vous venir en aide et vous aider à résoudre le problème. Le premier de ces programmes est ldd. Il retourne la liste des bibliothèques dynamiques utilisées par un programme. Il est ainsi possible de voir ce qui est requis pour la bonne exécution. En effet le programme a été compilé de telle sorte qu'il est obligé d'appeler dynamiquement certaines bibliothèques du système au moment de son lancement. Certains programmes sont compilés de façon statique, c'est à dire qu'ils incorporent les bibliothèques qui leurs sont nécessaires et ils ne réalisent pas d'appels aux bibliothèques. Voici un exemple de sortie de ldd : ~$ ldd /usr/lib/firefox-3.0b5/firefox linux-gate.so.1 =>  (0xb7f94000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7f6f000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7f6b000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7e77000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7e52000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7e47000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7cf8000) /lib/ld-linux.so.2 (0xb7f95000) Quand on analyse ces exemples, il est possible de voir les bibliothèques utilisées par un programme et éventuellement corriger son système en conséquence. Il est parfois envisageable, si l'on possède une librairie d'une autre version de créer un lien symbolique reprenant le nom de la bibliothèque demandée par le programme. Cela peut fonctionner ...

Mapleleg vit ici

et ailleurs également…

Featured & Popular Articles

De la pub comme à la télé...

De la pub comme à la radio...