
osd09: Coccinelle - bugs bugs bugs (del 2/3)
Efter min bof gik jeg ind og hørte Maemo og Qt foredrag - begge trak MANGE tilhørere til. Jeg havde fra min ven Alexander fået påpeget at et af de must-see foredrag på OSD Community Day var Julia Lawall med hendes foredrag om Coccinelle. Efterfølgende må jeg give ham ret. Det var et glimrende foredrag om et super godt emne - statisk kodeanalyse - primært C-kode. Coccinelle leder C-kode igennem for patterns som notorisk ofte gemmer på en programmeringsfejl. Julia startede med det simple udtryk i C : !X&Y - her er problemet at ! har højrere prioritet end den bit-wise AND-operation - og sandsynligvis mente programmøren !(X&Y). I Cocchinelle syntaks beskrives dette:
@@ expression E; constant C; @@ ( !E & !C | - !E & C + !(E & C) )
Det særligt elegante ved Coccinelle er at output af programmet er en kode-patch, som retter kode-stilen op.
Ovenstående eksempel er i den MEGET lette ende. Julia viste noget "særdeles gustne" kode-programmer, hvor kodestilen hen over mange linier gennemsøges for koblede mønstre, f.eks. anvendelse af pointerværdi før man checker på om pointeren er NULL.
Jeg glæder mig til at lege mere med det. Særdeles lovende program!
/pto
Peter Toft er senior specialist hos Renesas Mobile og har blogget om open source og Linux siden Version2's begyndelse. Blogger også jævnligt om andre sjove teknologi-områder.
Follow @petertoft

Tilføj kommentar