On Thu, 29 Jan 2009 22:03:11 +0100, Vincent Ordy <ordy(a)lrde.epita.fr>
wrote:
Bonjour,
Akim Demaille wrote:
>>> "VR" == Vincent Richomme
<vrichomme(a)smartmobili.com> writes:
[...]
Donc ce que je voudrais c'est un parser qui
ajoute un frprintf par
exemple pour logguer la fonction executée.
C'est une des fonctionnalités des langages à aspects. Il existe
peut-être des outils pour faire de C à aspects.
MyFunc.c
---------
void myfunc(int aFoo)
{
...
}
Je voudrais que le parser ajoute une ligne du
genre
void myfunc(int aFoo)
{
fprintf(stderr, "MyFunc.c::myfunc(int aFoo)");
...
}
Bon ensuite j'imagine que vu le nombre de
logs il faudrait pouvoir
avoir
une liste d'exclusion pour dire de ne pas
logguer certains fonctions mais je n'en suis pas encore la.
Si c'est juste pour déboguer, et que vous utilisez toujours GCC pour
compiler, jetter un coup d'oeil du côté de l'option
-finstrument-functions et de __cyg_profile_func_enter() de GCC (Google
donnera toutes les réponses ;) ).
Certains projets tels que etrace les utilisent pour faire exactement ce
que vous semblez vouloir faire, de manière non intrusive.
Ok merci pour toutes ces informations.
Mais finalement je crois que la première réponse d'Akim était la bonne,
je ne pense
plus non plus que ce soit la bonne façon de découvrir GCC.
En tout cas merci pour les infos, je vais quand meme jeter un coup d'oeil,
sinon de mon coté
j'avais également vu qu'il etait possible d'utiliser le framework de
compil. LLVM et son module clang.
Il y a un exemple ou il transforme du code objective-C il me semble.