Grüß euch
Ich hab heut ein kleines Python Tool namens "Noizu" geschrieben mit
dessen Hilfe sich der stderr Output von GCC und Clang nach Pfaden und
Dateinahmen filtern lässt. Das ist insbesondere dann hilfreich wenn man
so Dinge wie die CMSIS/DSP Bibliothek einbindet, die allein weit über
2000 Warnings generiert...
Um einen entsprechenden Output von seinem Compiler zu erhalten bietet es
sich an stderr beim Compilieren in ein File umzulenken. Das funktioniert
beispielsweise so:
Jenen Log kann man dann an Noizu schicken und nach Keywords filtern
lassen. Im Fall von CMSIS also etwa:
1 | python noizu.py log -e CMSIS/DSP
|
Bzw. wahlweise in eine neue Datei hinein:
1 | python noizu.py log -e CMSIS/DSP -o output_log
|
Und hier noch ein vorher/nacher Vergleich um zu veranschaulichen wie
viele Warnings man sich alleim im Fall CMSIS + STM32 HAL reinzieht:
1 | -Wsign-conversion 2403
|
2 | -Wconversion 324
|
3 | -Wpedantic 16
|
4 | -Wunused 7
|
5 | -Wunused-parameter 6
|
6 | -Wsign-compare 4
|
7 | -Wstrict-aliasing 3
|
8 | -Wattributes 2
|
9 | -Wshadow 1
|
10 | -Wunused-variable 1
|
Gefiltered nach CMSIS und HAL. Jene Warnings stammen aus von mir
eingefügtem Code:
1 | -Wunused 2
|
2 | -Wunused-parameter 1
|
3 | -Wsign-compare 1
|
4 | -Wstrict-aliasing 1
|
5 | -Wshadow 1
|
6 | -Wunused-variable 1
|
Das Projekt inklusive CMSIS + HAL Beispiel gibts hier:
https://gitlab.com/higaski/Noizu