Utilisation du système LINT intégré

8

Je développe actuellement des systèmes embarqués utilisant plusieurs compilateurs différents, les plus courants provenant des systèmes IAR.

Mon amour du matériel est ce qui motive les systèmes embarqués et les micrologiciels. Il me semble cependant manquer un peu en génie logiciel.

J'ai lu à plusieurs reprises qu'un bon Lint est précieux pour le code. Je voudrais savoir si quelqu'un ici utilise un Lint, de quel Lint il s'agit, et combien il aide à détecter les erreurs.

Kortuk
la source

Réponses:

4

J'ai utilisé de la charpie dans le passé et je l'ai trouvée utile. Cependant, j'ai dû arrêter de l'utiliser car je suis passé à un projet plus grand qui ne l'utilisait pas. Cela a rendu difficile l'utilisation de peluches, en raison de l'interconnexion du code. Le plus gros problème avec les peluches est de le configurer pour supprimer les faux positifs et ne s'en soucie pas. Il vaut peut-être mieux maintenant qu'ils ont fait une autre version au cours de la dernière année.

Une entreprise avec laquelle je travaille a pris ce grand projet et l'a fait passer par l'analyseur statique de Coverity. Cependant, c'est une grosse partie de l'argent à utiliser, donc ce n'est pas recommandé pour les petites entreprises.

Jay Atkinson
la source
J'ai lu un je dois m'attendre à passer du temps à l'avance pour qu'il arrête de jeter des faux positifs. Quelle charpie aviez-vous choisi d'utiliser à l'époque?
Kortuk
À l'époque, c'était la version 8.0.
Jay Atkinson
Savez-vous quelle entreprise a réussi, il existe de nombreux programmes Lint différents. On m'a dit qu'il s'appelait lint à cause des petits morceaux de charpie qu'il trouve que le compilateur manque.
Kortuk
1
Désolé, PC-LINT de Gimpel. Ce qui est bien, c'est qu'ils vous aident au moins à apprivoiser la sortie avec des jeux de règles prédéfinis basés sur le compilateur et l'éditeur que vous utilisez. Ils sont disponibles en téléchargement sur leur site: gimpel.com
Jay Atkinson
Si votre nouvelle base de code source crache beaucoup de "faux positifs", c'est malheureusement, généralement cassé.
Tim Williscroft
6

Je n'ai pas utilisé de peluches, mais je trouve que les avertissements de GCC peuvent détecter beaucoup d'erreurs de programmation.

Voici mes CFLAGS préférés

CFLAGS + = -Werror -W -Wall -ansi -pedantic -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wbad-function-cast -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Winline -Wundef -Wnested- externs -Wshadow -Wconversion -Wwrite-strings -Wno-conversion -Wextra -Wstrict-aliasing -Wcast-qual

J'ai également essayé Sparse de Linus Torvalds pour l'analyse statique. Mais je pense que ce type d'outils est plus utile pour les grands systèmes.

Toby Jaffey
la source
la plupart des systèmes avec lesquels je travaille sont dans la gamme de 50k lignes de code.
Kortuk
3

Je dois admettre que je n'ai pas eu beaucoup d'utilité avec une peluche en quelque sorte sur un projet de microcontrôleur / microprocesseur.

Sur mon projet intégré actuel, qui utilise C ++ sur un PC / 104 SBC basé sur Linux, nous avons utilisé cppcheck (fonctionne également avec C!). Cela fonctionne plutôt bien, bien qu'il ait des problèmes avec les arbres d'héritage de classe compliqués. Et cela a apporté une certaine valeur - c'est bon pour vérifier les emplacements potentiels où des fuites de mémoire pourraient se produire. Mais la plupart des choses qu'il a notées étaient stylistiques - utilisez le pré-incrément au lieu du post-incrément dans les boucles for, ce genre de chose.

J'ai également utilisé une charpie en ligne pour Javascript lors du développement d'applications pour un système logiciel d'entreprise. C'était absolument inestimable, car il n'y avait pas d'outils de débogage pour vérifier les erreurs de syntaxe dans cette configuration.

J. Polfer
la source