URL: https://linuxfr.org/news/coccigrep-un-grep-semantique-pour-le-langage-c-base-sur-coccinelle Title: Coccigrep, un grep sémantique pour le langage C basé sur Coccinelle Authors: Eric Leblond Date: 2011年09月02日T12:51:33+02:00 License: CC By-SA Tags: c, cli, langage_c, grep, sémantique, génie_logiciel et ligne_de_commande Score: 45 Lorsque l'on travaille sur un projet C comportant un certain nombre de fichiers et de lignes de code, il arrive fréquemment que l'on se pose des questions comme "Mais où est modifié le champ data de ma structure Packet ?". _grep_ ne suffit pas pour répondre à ce genre de questions car ne comprenant pas C, il ne sait pas, par exemple, que la variable monbopkt est une structure Packet. _coccigrep_, basé sur coccinelle qui est un outil très puissant de recherche et de modification automatique de code, est un logiciel libre chargé de répondre à ce genre de questions. Il vient d'être publié en version 1.0rc1, sous licence GPL v3. Il est écrit en Python et s'interface avec les éditeurs Vim et Emacs, ce qui permet de faire les recherches depuis l'éditeur. ---- [Page de coccigrep](http://home.regit.org/software/coccigrep/) [Site de Coccinelle](http://coccinelle.lip6.fr/) [Coccigrep sur github](https://github.com/regit/coccigrep) [Coccinelle for the newbie](http://home.regit.org/technical-articles/coccinelle-for-the-newbie/) ---- Le fonctionnement de _coccigrep_ est simple, vous spécifiez quel type d'opérations vous cherchez sur une structure et ses attributs. Par exemple, si l'on souhaite savoir où est assigné l'attribut datalink de la structure Packet dans les fichiers source*c, il suffit de taper : ```sh # coccigrep -t Packet -a datalink -o set source*c source-af-packet.c:301 (Packet *p): p->datalink = ptv->datalink; source-erf-dag.c:525 (Packet *p): p->datalink = LINKTYPE_ETHERNET; ``` Tout un ensemble d'opérations est disponible et ce dernier n'est pas fermé. Vous pouvez en effet rajouter vos propres opérations en créant des patchs sémantiques au format coccinelle. _Coccigrep_ s'appuie sur _coccinelle_ pour effectuer ses recherches dans le code source. _Coccinelle_ est un logiciel développé par l'INRIA, le LIP6 et l'université de Copenhague. Il est régulièrement utilisé pour effectuer des contrôles et des modifications sur le noyau Linux. De nombreux développeurs l'utilisent pour procéder à des modifications importantes de codes lors du changement d'une API par exemple.

AltStyle によって変換されたページ (->オリジナル) /