Debug de service windows [Résolu]

Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
- 4 juil. 2013 à 09:59 - Dernière réponse :
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Derniè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 ?

Merci d'avance pour vos réponses.


Simon
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
- 4 juil. 2013 à 15:45
3
Merci
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 !



Simon

Merci sp40 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de sp40
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
- 4 juil. 2013 à 10:18
0
Merci
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.

a+


Composants Cindy pour Delphi
Faites une donation.
Commenter la réponse de cs_MAURICIO
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
- 4 juil. 2013 à 10:41
0
Merci
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...)

Simon
Commenter la réponse de sp40
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
- 4 juil. 2013 à 15:49
0
Merci
Tu devais scarément en avoir besoin :)

En tout cas, merci pour le partage.


Mauricio


Composants Cindy pour Delphi
Faites une donation.
Commenter la réponse de cs_MAURICIO
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
- 4 juil. 2013 à 15:58
0
Merci
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...

Simon
Commenter la réponse de sp40
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
- 4 juil. 2013 à 16:30
0
Merci
NB : Il faut régénérer l'exécutable sans point d'arrêt après chaque modification du source, puis relancer en attachant au processus pour débuguer...


Simon
Commenter la réponse de sp40

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.