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

C++ Discussion :

Analyse de code C++


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par d�faut Analyse de code C++
    Bonjoru tout le monde,

    Je suis actuellement sur un projet d'analyse de code C++.
    En gros, il me faut cr�er une appli en C++ qui recherche l'ensemble des requetes SQL qui peuvent �tre cr�er dynamiquement dans une autre appli C++.

    Dans ce contexte j'aimerais trouver une m�thode, un outils ou m�me une id�e pour me permettre de rechercher l'ensemble des m�thodes qui font appel � une autre m�thode, exemple:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    void Toto::Select(char* mesTables, char* mesWhere)
    {
      int     nStatus;                   // statut retour oracle
      char    maRequete[LGMAX_REQUETE];   // requete a executer
      int nbLigne;
    
      strcpy(maRequete, "SELECT nom_des_champs a ramener FROM ");
      strcat(maRequete, mesTables);
      strcat(maRequete, " WHERE ");
      strcat(maRequete, mesWhere);
     
      nStatus = Open(maRequete);
      oErreur.Verifier(__FILE, "SelectRowid", OPE, maRequete, "res", 1, nStatus);
      nStatus = Nombre(nLigne);
      oErreur.Verifier(__FILE, "SelectNombre", SEL, maRequete, "res", 1, nStatus);
      nStatus = Close();
      m_nNbLigne = 0;
     
    }
    Dans cette m�thode, on voit qu'il y a un appel � Open, j'aimerais donc qu'en passant en param�tre ( � une m�thode ou un outils ) Open, on me ressorte Toto::Select.

    Merci de votre aide je suis assez emb�ter l�.

  2. #2
    Membre �clair� Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    D�tails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par d�faut
    Salut, j'ai plusieurs questions car pour moi y apleins de choses confuses.

    1. Quand tu parles d'un projet, tu parles d'un devoir � rendre?
    2. Quand tu parles d'une autre application, tu parles d'une lib externe? Si oui, tu dois en utiliser une en particulier (si il s'agit d'un devoir) ou tu cherches des id�es? J'ai pas compris si tu en cherchais une ou si tu cherchais comment l'utiliser.
    3. Quand tu fais "open(requete)", tu voudrais qu'il se passe quoi au juste?
    4. Qu'est ce que tu veux dire quand tu �cris "on me ressorte Toto::Select."?

    Petite remarque au passage, tu fais du C++, oublie les char*, strcpy, strcat et compagnie, utilises des std::string .

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par d�faut
    Ok alors je vais pr�ciser quelques trucs ^^ :

    1. Quand je dis projet c'est un projet d'entreprise, je ne suis plus �tudiant.
    2. On me demande de cr�er une appli compl�te (un projet) qui me permette d'analyser du code d'une autre application C/C++ (que je ne connais pas du tout).
    3. Je veux rien c'est un exemple de code que je dois analyser.
    4. Je cherche un outils, une m�thode, un trucs... qui me permette de ressortir l'ensemble des m�thodes qui font appel � une autre dont j'aurai pass� le nom en param�tre.

    Donc si j'utilise un outils et que je veux obtenir l'ensemble des m�thodes qui utilise la m�thode Open, j'obtiendrais Toto::Select.

    Je ne mis connait pas du tout en C/C++ mais j'apprends petit � petit.
    Merci de ton aide

  4. #4
    Membre Expert
    Avatar de imperio
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2010
    Messages
    872
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 872
    Par d�faut
    La fonction "recherche" de quasiment tous les �diteurs de texte ne te convient pas ? Avec la quasi-totalit� des IDE actuels tu pourrais t'en sortir assez facilement.

  5. #5
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    Linux possede ltrace (et son frere strace) pour tracer les appels a une lib.

    il doit y avoir un �quivalent sous windows, mais je n'ai pas cherch�

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par d�faut
    Imperio, je cherche un outils utilisable dans une appli pour pouvoir traiter le r�sultat directement.

    leternel, je vais regarder ce que je trouve � ce propos, il faudrai pouvoir �crire le r�sultat dans un fichier pour pouvoir l'analyser ensuite.

  7. #7
    Membre �clair� Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    D�tails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par d�faut
    Ah OK je comprends mieux � pr�sent, tu cherches un profiler.
    Regarde une fois GNU gprof:

    http://sourceware.org/binutils/docs-...rof/index.html

    C'est un profiler de code qui te pemet par exemple de savoir combien de fois une fonction est appel�e, combien de temps elle a consomm�, ... .
    Je crois que tu peux faire un graphe des appels de fonctions, � voir, faudra �tudier la doc.

  8. #8
    Membre confirm�
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par d�faut
    Alors un autre trucs que j'ai homis de pr�cis� :

    Je travaille sous Windows.
    Je cherche � r�cup�rer ces informations sans lancer l'appli dont le code est analys�. Il me semble que ce que vous me propos� l� permet de travailler pendant l'ex�cution du code (si je me trompe il faut me le dire).

    Merci pour vos r�ponses.

  9. #9
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    sans lancer l'application?

    alors oriente-toi soit vers un bon �cran et une paire d'yeux neufs, soit vers un analyseur syntaxique customis�.

    Puisque tu as les sources de l'application, wingrep va te servir.
    ltrace permet d'espionner une application pendant son ex�cution.

  10. #10
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    Citation Envoy� par roulian46 Voir le message
    Ok alors je vais pr�ciser quelques trucs ^^ :

    1. Quand je dis projet c'est un projet d'entreprise, je ne suis plus �tudiant.
    2. On me demande de cr�er une appli compl�te (un projet) qui me permette d'analyser du code d'une autre application C/C++ (que je ne connais pas du tout).
    3. Je veux rien c'est un exemple de code que je dois analyser.
    4. Je cherche un outils, une m�thode, un trucs... qui me permette de ressortir l'ensemble des m�thodes qui font appel � une autre dont j'aurai pass� le nom en param�tre.

    Donc si j'utilise un outils et que je veux obtenir l'ensemble des m�thodes qui utilise la m�thode Open, j'obtiendrais Toto::Select.

    Je ne mis connait pas du tout en C/C++ mais j'apprends petit � petit.
    Merci de ton aide
    Ca me fait penser a la fonction recherche de Visual Assist, un plugin de Visual Studio. Tu selectionnes une methode et tu fais find references et il te sort tous les appels a cette methode partout dans ton code.
    Il y a une version demo pour tester.

  11. #11
    Membre confirm�
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par d�faut
    Peut-on lancer cette fonction en mode ligne de commande?

  12. #12
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    Non, il faut avoir dans une base de donnees la description du programme, ses options de compilation... Tout ca ne peut etre fait que dans un IDE de maniere propre.
    Tu es sous Windows, donc tu dois avoir un projet Visual Studio ? Tu installes le plugin et tu testes sur le projet

    Ou alors tu te fracasse un outil qui analyse ton code, ecrit toutes les references dans une base de donnees... ca devrait de prendre pas plus de 3 ou 4 ans de faire un outil sur mesure...

Discussions similaires

  1. Outil d'analyse de code
    Par Bloon dans le forum Outils
    R�ponses: 8
    Dernier message: 07/08/2007, 09h04
  2. Analyse de code
    Par ecocentric dans le forum Autres �diteurs
    R�ponses: 1
    Dernier message: 11/02/2005, 01h09
  3. [WSAD 5 ] - Analyse de code
    Par nicoswiss dans le forum Eclipse Java
    R�ponses: 8
    Dernier message: 13/08/2004, 10h21
  4. [ Code ] Analyse de code - Attribut Inutile
    Par geegee dans le forum Eclipse Java
    R�ponses: 2
    Dernier message: 19/05/2004, 09h07
  5. Cherche lien info... sur l'analyse du code
    Par Alec6 dans le forum Qualim�trie
    R�ponses: 3
    Dernier message: 03/03/2004, 14h44

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