Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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