IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Profiler par interruption et attachable


Sujet :

Linux

  1. #1
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut Profiler par interruption et attachable
    Est-ce que quelqu'un connaitrait un profiler pour linux fonctionnant par interruption et pouvant etre attache a un process en cours d'execution?

    Merci
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    peux-tu préciser un peu stp ce que tu entends par "fonctionnant par interruption" ?
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  3. #3
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    peux-tu préciser un peu stp ce que tu entends par "fonctionnant par interruption" ?
    En fait, je cherche a
    - ne pas avoir besoin d'instrumenter le code
    - ne pas devoir utiliser qqch comme valgrind qui interprete le code.

    La seule technique que je connaisse qui remplisse mes contraintes est de s'attacher (comme un debugger) en laissant tourner l'appli et regulierement l'arreter et faire une capture de la pile d'appel.

    A+

    --
    Jean-Marc
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    et pourquoi pas ddd ??

    ca marche bien

    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #5
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Je confirme souviron34.
    gdb peutc très débugguer un programme déjà lancé.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  6. #6
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Je ne parle pas de debugger, mais de profiler -> optenir qqch de similaire a ce que gprof donne mais sans instrumenter (et j'accepte que ce soit moins precis en fonctionnant par interruption).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    ben gcc -p (ou -P) te fais la chose, non ???

    tu as le fichier de sortie gmon.out et tu n'as rtien instrumente du tout, tu as juste mis un flag de compil.....

    Mais peut-etre que je ne comprend pas tout...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  8. #8
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    ben gcc -p (ou -P) te fais la chose, non ???

    tu as le fichier de sortie gmon.out et tu n'as rtien instrumente du tout, tu as juste mis un flag de compil.....

    Mais peut-etre que je ne comprend pas tout...
    Sans instrumenter ni faire quoi que ce soit sur l'executable ou en changeant la maniere dont on le lance. Je sais, je suis difficile.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    si ton prog n'est pas compilé avec les flags spéciaux, ça m'étonnerait que tu trouves.. : il y a des raisons simples : la compil et link ,si on enlève les flags de debug, ne contiennent plus les liens avec les sources... Donc plus de noms de fonctions, variables, etc etc......

    Donc si jamais tu trouvais ça, tout ce que ça pourrais faire, c'est t'afficher du code assembleur, avec des MOV .R1 .... pour la gestion des variables , JMP .... pour changer de fonction...

    Je ne sais pas si tu as déjà essayer de remonter d'un prog d'assembleur à une fonction, mais c'est pas de la tarte.. Tout un prog, surtout si il est gros, bonne chance !!!!
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  10. #10
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    si ton prog n'est pas compilé avec les flags spéciaux, ça m'étonnerait que tu trouves...
    Workshop le fait depuis au moins 10 ans. (Je n'ai pas besoin d'information à la ligne près, une information par chemin d'appel ou mieux par fonction me suffirait -- et l'info est là, gdb la donne quand on fait un bt sur un exécutable optimisé).

    Depuis, j'ai trouvé libunwind et je vais voir si j'arrive à me bâtir quelque chose qui me suffise à partir de cela.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  11. #11
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    souviron34, c'est pas si méchant que ça l'assembleur. Même le code asm garde une certaine sémantique. Les changements de fonctions c'est pas des jmp mais des call/ret.
    De plus il reste un certain nombre d'informations dans l'exécutable si celui-ci n'est pas stripé (option -s de gcc ou commande strip), il reste notamment les noms de fonction, c'est bien suffisant pour construire une pile d'appel.

    Théoriquement ça m'a l'air faisable, il suffirait d'attacher le programme à la façon d'un débuggeur et suivre son exécution, non pas pour voir ce qu'il fait mais pour le chronométrer. Cela dit, ça risque de ralentir l'exécution du programme si on veut le suivre instruction par instruction (faudrait pas qu'un call nous échappe), mais si les durées absolues ne t'intéressent pas, c'est pas un problème.

    Cela étant dit, je ne connais pas de tool effectuant ce genre d'action.

    Il semblerait que qprof utilise la libunwind, mais il ne peut pas travailler sur un processus déjà en mémoire, et utilise la technique du LD_PRELOAD pour redéfinir des fonctions, donc ça ne marche pas sur les programmes stripés ni les programmes linkés statiquement.

    Cela dit si tu trouves ton bonheur, je suis preneur.
    Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Celelibi Voir le message
    souviron34, c'est pas si méchant que ça l'assembleur.
    je ne sais pas si tu as déjà essayé (moi oui, professionnellement) de re-construire une bibliothèque de traitement d'images de 5000 à 10000 lignes de code à partir uniquement du .o (généré SANS flag de debug)...

    Ben on avait abandonné...... Et on la refaite de A à Z...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  13. #13
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    je ne sais pas si tu as déjà essayé (moi oui, professionnellement) de re-construire une bibliothèque de traitement d'images de 5000 à 10000 lignes de code à partir uniquement du .o (généré SANS flag de debug)...

    Ben on avait abandonné...... Et on la refaite de A à Z...
    Oui je l'ai déjà fait. Sur des .exe windows (sachant que j'ai pas windows chez moi), et sur un .o parce que le prof nous avait donné un .o de la deuxième partie du projet pour qu'on test la première partie.
    Mais c'est vrai que ça dépassait pas quelques centaines de ligne.

    Mais c'est clair qu'au niveau du temps passé, il vaut mieux recoder le prog en entier et éventuellement regarder le code assembleur original uniquement en cas d'ambiguïté ou sur un point très technique.
    Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/07/2014, 13h51
  2. [WS 2008 R2] MDT et profil par défaut
    Par Mitakue dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 24/02/2012, 10h38
  3. Profil par défaut de Windows
    Par lowess dans le forum Windows XP
    Réponses: 1
    Dernier message: 21/02/2011, 11h32
  4. Fond d'écran/profil par defaut Windows 7
    Par Il_TiRaNNo dans le forum Windows 7
    Réponses: 8
    Dernier message: 01/06/2010, 09h40
  5. Maven 2 : exécuter un profil par défaut
    Par ggalou08 dans le forum Maven
    Réponses: 5
    Dernier message: 09/05/2008, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo