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

Langage C++ Discussion :

C++/Unix - Détecter le début de l'éxecution d'une focntion


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 110
    Par défaut C++/Unix - Détecter le début de l'éxecution d'une focntion
    Bonjour,

    J'essaye de concevoir un outil pour le calcul de la durée de l'exécution de mes fonctions, mais j'ai dû mal à avancer pour le moment.
    Mon idée est de développer une fonction que je peux appeler à parti de mon terminal quand je le souhaite (pour cette étape, je n'ai pas problème), que je lui donne en paramètre le nom de la classe et le nom de la fonction, et qui va détecter le début et la fin de l'exécution, de la fonction en paramètre, dés que la fonction est exécutée.
    Est ce que vous connaissez une méthode, fonction, outil ou n'importe quelle piste qui peut m'aider à trouver une réponse ?

    Je vous remercier d'avance.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 061
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 061
    Billets dans le blog
    142
    Par défaut
    Bonjour,

    Le seul endroit ou je vois que vous pouvez avoir de l'aide, c'est dans le code de gdb, ou celui de valgrind.
    Peut être au moins juste pour savoir les bibliothèque qu'ils utilisent, car ils ont des bibliothèques spécialement conçu pour ce genre de trucs.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,
    Ce genre d'instrumentation est effectivement typique des debuggers.
    Sinon, dans un premier temps, tu peux regarder si la programmation par aspect peut t'aider à constituer une instrumentation 'statique' de ton code.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 110
    Par défaut
    Merci pour vos réponses :
    le code de gdb, ou celui de valgrind.
    Je vais chercher le code source de gdb, surtout la fonction "breackpoint" pour avoir plus d'information. Valgrind, je connais pas, mais je vais chercher avant de poser des questions.
    tu peux regarder si la programmation par aspect peut t'aider à constituer une instrumentation 'statique' de ton code.
    Actuellement je ne connais pas la programmation par aspect, et une refonte du code ne parait pas envisageable (Je travaille sur application énorme et complexe).
    Mais j'ai une petite question, qu'est ce que tu veux dire par "une instrumentation 'statique' de ton code" ?
    Merci d'avance.

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 061
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 061
    Billets dans le blog
    142
    Par défaut
    Citation Envoyé par mehdi_me85 Voir le message
    Je vais chercher le code source de gdb, surtout la fonction "breackpoint" pour avoir plus d'information. Valgrind, je connais pas, mais je vais chercher avant de poser des questions.
    Valgrind est un outil perfectionné permettant entre autre de voir les fuites de mémoire ( sa principale utilisation ). Mais il peut aussi être comparé à un débuggeur à part entière.

    Citation Envoyé par mehdi_me85 Voir le message
    Actuellement je ne connais pas la programmation par aspect, et une refonte du code ne parait pas envisageable (Je travaille sur application énorme et complexe).
    Mais j'ai une petite question, qu'est ce que tu veux dire par "une instrumentation 'statique' de ton code" ?
    Merci d'avance.
    J'ai l'impression que cela voulait dire, ajouter des lignes de code à la main pour faire ce qui est voulu ( genre des printf en début de fonction ). Si ce n'est pas ça, je suis aussi très intéressé par la réponse.
    Chose à savoir, il peut être une bonne idée de faire un code comme suit ( c'est ce que je fais dans mon dernier projet ):
    [code]
    #ifdef _INTRUMENTATION
    printf("Hello, I am here!\n");
    #endif

    Ce qui permet de choisir ou non si le code aura cette ligne, à la compilation.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 110
    Par défaut
    Chose à savoir, il peut être une bonne idée de faire un code comme suit ( c'est ce que je fais dans mon dernier projet ):
    [code]
    #ifdef _INTRUMENTATION
    printf("Hello, I am here!\n");
    #endif
    Cette solution, sauf erreur de ma part, consiste à définir la variable _INTRUMENTATION au début de la fonction et surtout avant la compilation. Le souci est que je cherches une solution qui me permettra d'interagir avec l'application en temps réel, sans compiler à chaque fois que je veux faire ou arrêter mon traitement.

    Merci de me corriger si je me trompes.

  7. #7
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    J'ai l'impression que cela voulait dire, ajouter des lignes de code à la main pour faire ce qui est voulu ( genre des printf en début de fonction ).
    Sur le principe c'est à peu près ça (sauf pour le printf ). La programmation par aspect te permet de ne pas être intrusif à l'écriture de ton code à instrumenter : ton code reste inchangé et tu rajoutes un aspect d'instrumentation 'à côté'. Cependant, après avoir fait tourner toutes les moulinettes et les compilateurs, tu auras bien une instrumentation rajoutée en début et en fin de fonction dans ton binaire. Mais au niveau de tes sources, cette instrumentation n'apparait pas. C'est la force de la programmation orientée aspect et c'est pour ça qu'elle a été réfléchie. (tu peux regarder du côté de AspectC++ ou AOSD pour avoir du blabla là dessus).

    Sinon, mehdi_me85 : quel est ton problème exactement et que peux tu faire en terme de modif de code ? Car j'ai l'impression que tu risques de te lancer dans quelque chose de pas du tout trivial (un debugger c'est loin d'être trivial ... surtout pour instrumenter du release). Peut être qu'une autre approche est plus intéressante.

Discussions similaires

  1. [CKEditor] Détecter le début du deuxième paragraphe d'un texte
    Par aljessy dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 25/03/2015, 09h28
  2. Réponses: 5
    Dernier message: 22/11/2010, 17h39
  3. [Process] éxecution d'une commande
    Par alex'l dans le forum API standards et tierces
    Réponses: 14
    Dernier message: 03/11/2008, 23h14
  4. Réponses: 4
    Dernier message: 24/11/2005, 08h34
  5. [Process] éxecution d'une commande système
    Par alex'l dans le forum API standards et tierces
    Réponses: 12
    Dernier message: 13/09/2005, 17h29

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