gdb: comment lister les fichiers ouverts
Je me demandais si il serait possible d'obtenir une liste de fichiers/répertoires que le débogage de l'application a ouvert, mais pas fermé à partir de GDB lui-même ?
Actuellement j'ai mis un point d'arrêt, puis-je utiliser un programme externe comme lsof
pour vérifier les fichiers ouverts.
Mais cette approche est vraiment ennuyeux.
Environnement: Debian Lenny avec gdb v6.8
MODIFIER: je demande parce que mon application est une fuite de handles de fichiers dans certaines situations
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Sur Linux, vous pouvez également regarder dans
/proc/<pid>/fd
. À faire que de GDB (par exemple, si vous souhaitez l'associer à un point d'arrêt) est assez simple. Ou bien vous pouvez simplement utiliser lsof, trop.grâce à l'aide de Nicolas, j'ai été en mesure d'automatiser la tâche par la définition d'une macro.
.gdbinit
:voici une session à l'aide de la macro (le programme ouvre un fichier dans le répertoire /tmp):
de sortie:
Non, mais vous pouvez exécuter lsof et le filtre vers le bas pour le processus de débogage.
Si
lsof
n'est pas disponible sur votre système(j'ai eu ce genre de problème), vous pouvez utilisergdb info os files
. Il affiche des informations sur les fichiers ouverts pour tous les processus.