sp40
Messages postés1284Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 2015
-
4 juil. 2013 à 09:59
sp40
Messages postés1284Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 2015
-
4 juil. 2013 à 16:30
Bonjour,
Pour debuguer un service windows, voici la méthode que j'utilise (d'après les docs d'embarcadero) :
- Démarrage de Delphi XE2 (ou 4) en tant qu'administrateur (élévation de privilèges)
- Ouverture de mon projet,
- Compilation
- Installation du service (avec un batch exécuté en administrateur : "[Nom complet de l'exe]" /install),
- Démarrage du service
- Dans Delphi : Menu "Exécuter">"Attacher au processus" et je sélectionne l'exécutable de mon service en exécution,
- Enfin, je clique sur le bouton "Exécuter (F9)"
Le problème, c'est que dès que j'attache mon dev au processus, Delphi m'ouvre une fenêtre CPU, et bien que je puisse poser des points d'arrêt dans le code, ils ne sont pas actifs et le programme ne s'y arrête pas.
D'où mes questions :
- Est-ce normal ? Est-ce le seul débugage que l'on peut faire sur un service ?
- Y a t'il une autre méthode qui permette d'utiliser les points d'arrêt ?
sp40
Messages postés1284Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 4 juil. 2013 à 15:45
Mauricio, c'est avec une émotion non contenue que je vais te donner la méthode (pour windows 7, XE2) !!!
J'ai bataillé un peu, et j'ai fini par trouver...
- Déjà, on ne débug que la version debug (jusque là...),
- Démarrer Delphi en admin (sinon on ne voit pas le service dans la liste des processus rattachables),
- Ouvrir le projet à pister,
- Dans Projet > Options > Compilateur Delphi > Liaison : Cocher "inclure les symboles de debugage distant",
- Compiler le projet sans points d'arrêt pour générer l'exécutable,
- Installer le service,
- Placer les points d'arrêt,
- Démarrer le service (en ce qui me concerne, j'ai mis un timer à 15 secondes avant le déclenchement du traitement pour pouvoir avoir le temps de faire le reste des manips ci dessous),
- Dans Delphi, dans Exécuter > Attacher au processus, choisir l'exécutable du service à debuguer,
- Appuyer sur F9, c'est parti !
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 4 juil. 2013 à 10:18
Salut Simon,
malheureusement, j' ai eu les mêmes problèmes que toi.
J' ai fini para faire le service comme appli normale puis j' ai récupéré les unités dans mon service.
sp40
Messages postés1284Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 4 juil. 2013 à 10:41
Oui, habituellement je fais un service et l'appli VCL correspondante pour le tester, mais c'est un peu dommage (pénible ?). Surtout qu'il y a quand même quelques différences dans les methodes (formCreate, formDestroy, ServiceStart, ServiceStop...)
sp40
Messages postés1284Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 4 juil. 2013 à 15:58
Bé je fais pas mal de services en ce moment (pour un serveur où je n'ai pas forcément de session ouverte, donc il faut que ça tourne dès que le serveur est démarré), du coup, ça me gave un peu de faire une appli VCL à chaque fois pour les tests...