Bonjour,
J'ai besoin de différencier si mon project1 est lancé de manière autonome ou par l'IDE.
Au départ, j'ai pensé régler le problème avec des {$if }. Mais je n'ai rien trouvé à mettre derrière le {$if qui pourrait détecter l'action du Debugger (et non pas sa présence puisqu'il est externe à Lazarus).
Donc, faute de mieux,
- Sous Windows je pense que l'on peut faire quelque chose du genre IsRunningDelphi que l'on trouve sur le Web en prenant les précautions d'usage.
- Sous Linux, j'ai essayé ceci par Terminal pour détecter comment est lancé le programme lclversionexample contenu dans le répertoire /root/testtesttest/
# fuser -vu /root/testtesttest/lclversionexample
Réponses obtenues
- Programme lancé de manière autonome
1 2 3
| USER PID ACCESS COMMAND
/root/testtesttest/lclversionexample:
root 2508 ...e. (root)lclversionexamp |
1 2 3 4
| USER PID ACCESS COMMAND
/root/testtesttest/lclversionexample:
root 2689 ....m (root)gdb
root 2780 ...e. (root)lclversionexamp |
Donc, on peut différencier le type de lancement comme cela...
Mais je me demande encore s'il n'y a pas une méthode plus simple d'une part et plus portable ? Je ne serais pas passé à côté de quelque chose d'élémentaire et d'astucieux comme souvent Lazarus permet de le faire ?
Il y a bien dans le package FCL les units
- dbugintf : Unit to send commands to a debug server process
- dbugmsg : Auxiliary unit for the dbugintf unit
Mais la documentation indique qu'il n'y a rien à espérer de ce côté-là.
http://coleweb.dc.fi.udc.es/docencia...-2.0.2/fcl.pdf
The unit is transparant in its use: it does not need initialization, it will start the debug server by itself if it can find it: the program should be called debugserver and should be in the PATH. When the first debug message is sent, the unit will initialize itself.
The FCL contains a sample debug server (dbugsvr) which can be started in advance, and which writes debug message to the console (both on Windows and Linux). The Lazarus project contains a visual application which displays the messages in a GUI.
Des docs sur ce sujet-là ou une manière de faire ?
Merci. Cordialement. Gilles
Partager