#1 Le 05/07/2010, à 15:18
- croconux
[résolu] récupère le nom du programme géniteur exécutable
Bonjour
Dans un script que je suis en train de faire qui permet de savoir s'il y a des fuite mémoire dans lequel je passe l'exécutable je voudrai savoir quel est le fichier qui contient le main qui l'a généré pour pouvoir vérifier qu'il contient bien certain ligne
car il est loin d'être interdit d'écrire cela pour compiler
gcc -c *.o
gcc main.o tirFesse.o -o skieur
la première ligne est juste l'écriture condensé car je ne voulais pas alourdir l'exemple
donc en passant skieur à mon script je veut pouvoir vérifier dans main.c
Le fait de récupérer le nom du source me permet de distinguer 3 cas erreurs :
_ le programme contient les lignes et le test mémoire retourne erreur avec bonne compilation
_ le programme ne contient pas les lignes et le test mémoire retourne erreur
_ le programme contient les lignes et le test mémoire retourne erreur avec mauvaise compilation
savez vous comment on peut faire ??
Dernière modification par croconux (Le 06/07/2010, à 13:53)
croconux
Hors ligne
#2 Le 06/07/2010, à 08:53
- croconux
Re : [résolu] récupère le nom du programme géniteur exécutable
Bonjour
je sais que c'est possible car mtrace le fait
croconux
Hors ligne
#3 Le 06/07/2010, à 09:21
- credenhill
Re : [résolu] récupère le nom du programme géniteur exécutable
hello
tu veux connaitre quel fichier .c, une fois compilé, contient le main de l'exécutable skieur ?
Dernière modification par credenhill (Le 06/07/2010, à 09:21)
Hors ligne
#4 Le 06/07/2010, à 11:07
- croconux
Re : [résolu] récupère le nom du programme géniteur exécutable
Bonjour
c'est tout à fait ça credenhill
Dernière modification par croconux (Le 06/07/2010, à 11:07)
croconux
Hors ligne
#5 Le 06/07/2010, à 12:12
- credenhill
Re : [résolu] récupère le nom du programme géniteur exécutable
en compilant avec l'option de debug -g, je peux connaitre le fichier source avec:
gdb skieur
(gdb)info sources
ou en script
echo -e "info sources\nquit" > gdb1
gdb -x gdb1 skieur | tail -1
Hors ligne
#6 Le 06/07/2010, à 12:50
- croconux
Re : [résolu] récupère le nom du programme géniteur exécutable
Merci
credenhill je savais que l'on pouvez le retrouvez avec gdb
mais dans le cas de projet où l'on peut avoir plusieurs main recompiller avec l'option -g est pas si pratique surtout quand on n'a pas rédiger ces fichiers (travaille en groupe).
au faite merci pour le code en script :
echo -e "info sources\nquit" > gdb1
gdb -x gdb1 skieur | tail -1
Dernière modification par croconux (Le 06/07/2010, à 12:51)
croconux
Hors ligne
#7 Le 06/07/2010, à 13:03
- credenhill
Re : [résolu] récupère le nom du programme géniteur exécutable
mais si on ne compile pas avec l'option -g, le chemin et nom du source n'est pas conservé dans l'exécutable, juste le nom mais il faut le connaitre et si l'exécutable n'est pas stripé (enlever les symboles avec strip), on peut vérifier avec
strings -a skieur | grep source
ou il y a peut-être une autre méthode
Hors ligne
#8 Le 06/07/2010, à 13:03
- kamui57
Re : [résolu] récupère le nom du programme géniteur exécutable
Pour voir si ya des fuites mémoires j'utilise valgrind. Je le trouve nickel.
Quand le dernier arbre aura été abattu, et le dernier animal exterminé, les hommes se rendront compte que l'argent ne se mange pas (proverbe indien)
Toshiba Satellite L655 4 Go RAM, Archlinux Gnome-shell,LXDE / W7
Toshiba Satellite M30 512 Mo RAM, Archlinux Gnome 3 restreint / Crunchbang LXDE
https://help.ubuntu.com/community/Pastebinit pour poster du texte sur internet en console
Hors ligne
#9 Le 06/07/2010, à 13:52
- croconux
Re : [résolu] récupère le nom du programme géniteur exécutable
Merci pour tes réponses credenhil
je fait au finale
strings -a skieur | grep '[[:alpha:]]\{1,\}[.]c'
Dernière modification par croconux (Le 06/07/2010, à 15:06)
croconux
Hors ligne
#10 Le 06/07/2010, à 14:21
- croconux
Re : [résolu] récupère le nom du programme géniteur exécutable
pour ta réponse kamui57 ne me convient pas entièrement car je cherchez une méthode qui peut être appliquer même sur machine ou on a pas les droit du superUser
même si le programme est intéressant.
Dernière modification par croconux (Le 08/07/2010, à 15:38)
croconux
Hors ligne