Le 11/06/2010 14:47, Jacques-Daniel PILLON a écrit : > Le vendredi 11 juin 2010 à 03:28 +0200, Goldy a écrit : >> Bonsoir à tous, >> > > Bonjour, > > il est possible de générer un fichier core avec la commande gcore > (paquet gdb) : > > $ gcore PID > > D'après mes tests, le fichier core généré contient le code source du > script bash exécuté. > > Procédure de test : > > Fichier test.sh : > > #!/bin/sh > > while(true) ; do > echo "toto" > sleep 2 > done > > Script lancé dans un terminal, puis le fichier source supprimé : > > jdpil...@devel:~$ lsof | grep test.sh | grep deleted > test.sh 20157 jdpillon 10r REG 8,17 55 > 344084 /home/jdpillon/bin/test.sh (deleted) > jdpil...@devel:~$ > > Création du fichier core : > > jdpil...@devel:~$ gcore 20157 > 0x001ad422 in __kernel_vsyscall () > Saved corefile core.20157 > jdpil...@devel:~$ > > Le fichier core.20157 contient le code source du fichier test.sh. En > utilisant grep, sed, ou autre il doit être possible de ne récupérer que > le code source au milieu de ce fichier binaire. > > Le fait d'utiliser gcore n'affecte en rien le processus. > > Cordialement > > -- > Jacques-Daniel PILLON >
Je viens d'essayer, mais malheureusement le code source est complètement noyé dans un tas de donnés binaires qu'il est difficile de filtrer (ça contient également le contenu des variables... et comme le script est un serveur d'encodage vidéo, c'est un sacré foutoir). Je crois que j'aurais plus vite fait de réécrire ce que j'avais modifié dans le script, je me vois mal m'amuser avec des expressions régulières pour extraire ça. Merci quand même. Ha sinon, une question HS tant que je peux la poser. J'ai lu dans une documentation sur bash que ce langage était déconseillé pour développer des applications de type daemon ou serveur, mais sans expliquer pourquoi. Le bash est pourtant très robuste et permet d'éviter bon nombre de bug que l'on pourrait avoir avec un langage compilé, est-ce que quelqu'un saurait pourquoi cette recommandation ? -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers [email protected] En cas de soucis, contactez EN ANGLAIS [email protected] Archive: http://lists.debian.org/[email protected]

