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

Free Pascal Discussion :

Profilage de code FPC sous Windows


Sujet :

Free Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Décembre 2004
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 123
    Par défaut Profilage de code FPC sous Windows
    Bonjour,
    j'essaye de profiler du code FPC/Lazarus sous Windows (car ce code se connecte à Excel). Différentes tentatives n'ont pas abouties:
    - Valgrind ne fonctionne que sous Linux.
    - Very Sleepy ne traduit pas les informations de déboguage DWARF2 contenues dans le binaire
    - l'option gprof (-pg) ne fonctionne pas sur FPC 3.x sur windows
    - l'option gprof (-pg) fonctionne en revanche avec FPC 2.6 sur windows, MAIS l'exécutable n'est pas assemblé car il manque des librairies unix: c, gcc, user32, kernel32, etc.
    j'ai installé cygwin64 avec toutes les librairies. Toutes les librairies sont maintenant incluses dans l'exécutable (libc.a, libgcc.a, etc).
    Malheureusement, il reste des symboles non reconnus. ci-dessous la copie de la sortie de FPC:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Free Pascal Compiler version 2.6.4 [2015/04/18] for i386
    Copyright (c) 1993-2014 by Florian Klaempfl and others
    Target OS: Win32 for i386
    Compiling SimpleProgram.lpr
    Linking SimpleProgram.exe
    SimpleProgram.lpr(5,1) Error: Undefined symbol: __mcleanup
    SimpleProgram.lpr(5,1) Error: Undefined symbol: _monstartup
    SimpleProgram.lpr(5,1) Error: Undefined symbol: ___main
    SimpleProgram.lpr(5,1) Error: Undefined symbol: _cygwin_crt0
    SimpleProgram.lpr(5,1) Fatal: There were 4 errors compiling module, stopping
    Fatal: Compilation aborted
    Le source de SimpleProgram.lpr est extremement simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    program SimpleProgram;
    begin
      Writeln('Hello World!');
    end.
    La commande FPC est elle aussi très simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fpc -FlCygwin64\lib -FlCygwin64\lib\gcc\x86_64-pc-cygwin\4.9.3 -FlCygwin64\lib\w32api -pg SimpleProgram.lpr
    Quelqu'un a-t-il déjà réussi à profiler du code FPC sous Windows?
    Comment faire?
    Y a-t-il un autre outil qui permet de profiler du code FPC, ou de mesurer la couverture de tests?
    Comment compléter les symboles manquants si je suis sur la bonne piste?

    Merci pour votre aide!

  2. #2
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 131
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 131
    Par défaut
    Salut salut,

    je ne vais pas beaucoup t'aider car :
    • je suis sous Linux ;
    • je ne sais pas de quoi tu parles avec ces histoires de profiling...

    En fait, si je suis là, c'est parce que je te propose de rajouter une option à ta ligne de commande, option découverte cet après-midi (et je sais que dans la vie, tout sert à tout).

    Essaye avec fpc -va -suite_de_ta_ligne_de_commande, qui te permettra d'avoir plein d'infos en mode verbose.

    Ça m'a bien aidé, moi.

  3. #3
    Membre actif
    Inscrit en
    Décembre 2004
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 123
    Par défaut FPC en mode verbose
    FPC en mode verbose ne fournit pas plus d'informations:

    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
    [0.841] Opening library C:\Cygwin64\lib\libc.a
    [0.851] Opening library C:\Cygwin64\lib\libgmon.a
    [0.854] Opening library C:\Cygwin64\lib\libcygwin.a
    [0.884] Opening library C:\Cygwin64\lib\w32api\libuser32.a
    [0.901] Opening library C:\Cygwin64\lib\w32api\libkernel32.a
    [0.934] Opening library C:\Cygwin64\lib\gcc\x86_64-pc-cygwin\4.9.
    3\libgcc.a
    [1.071] Number of unresolved externals in objects 76
    [1.071] Number of unresolved externals after static libraries 76
    [1.071] Number of unresolved externals after defining COMMON symbols 76
    [1.074] Number of unresolved externals after DLL imports 4
    [1.074] Undefined symbol: __mcleanup
    [1.074] Undefined symbol: _monstartup
    [1.074] Undefined symbol: ___main
    [1.074] Undefined symbol: _cygwin_crt0
    [1.079] There were 4 errors compiling module, stopping
    [1.081] Compilation aborted
    Un certain nombre de bibliothèques sont trouvées et ajoutées lors de l'édition de liens, mais pas pour ces symboles manquants.

    Le profilage de code consiste à mesurer la vitesse d'exécution de code, parfois jusqu'à la ligne pour détecter les points noirs,
    ou bien mesurer la couverture du code par les tests. Il faut pour cela que le code soit instrumenté, ce qui est justement le rôle de l'option -pg

Discussions similaires

  1. Configurer Cygwin en Code Blocks sous windows
    Par amo-said dans le forum Bibliothèques, systèmes et outils
    Réponses: 2
    Dernier message: 14/03/2011, 09h12
  2. Compiler du code Pascal sous Windows en .so (Java)
    Par obione dans le forum Pascal
    Réponses: 4
    Dernier message: 04/05/2010, 17h29
  3. Code::Blocks sous Windows 7
    Par freddy38 dans le forum Code::Blocks
    Réponses: 2
    Dernier message: 04/02/2010, 23h54
  4. portabilité du code VBS sous windows 2000
    Par hervebaron dans le forum VBScript
    Réponses: 20
    Dernier message: 06/06/2008, 10h33
  5. Code compilable sous Windows et Unix
    Par xzed dans le forum C
    Réponses: 9
    Dernier message: 16/05/2006, 16h06

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