Forum: PC Hard- und Software CodeSonar vs. PC-Lint


von etk552 (Gast)


Lesenswert?

Guten Morgen,

eigentlich bin ich embedded Programmierer aber ich denke, dass das Thema 
trotzdem hier her gehört.

Es geht um folgendes:

Um unsere Softwarequalität zu steigern möchten wir einen statischen 
Codeanalyser verwenden. Ich habe hierbei an PC-Lint gedacht, da es 
eigentlich fast alle unsere Anforderungen erfüllt und sich in unsere 
Entwicklungsumgebung uVision integrieren lässt.

Die meisten sind aber nicht ganz zufrieden mit dem Tool, vor allem da 
die Konfiguration sehr umständlich sein kann und die Ausgabe der Fehler 
im Build Output nicht übersichtlich ist.

Bei einer weiteren Recherche bin ich auf das Programm CodeSonar 
gestoßen.
Rein vom optischen Aspekt und von der Handhabung her kann man eigentlich 
nichts daran aussetzen. Mit der Evaluierungsversion habe ich mich auch 
schon ein bisschen beschäftigt aber bin noch nicht so tief drin, dass 
ich den eigentlichen Zweck des Programms gut bewerten könnte.

Laut Internet und White Papers scheint das Toll ganz gut zu sein. Es 
vergleicht sich in einigen White Papers des öfteren mit PC-Lint und 
macht dieses regelrecht schlecht aber das kann ich so nicht bestätigen.
PC-Lint steht dem Programm meiner Meinung nach in nichts nach, außer in 
der Handhabung und dem optischen Aspekt.

Wie seht ihr das?
Habt ihr Empfehlungen, Pro und Contras für das ein oder andere Tool?

Rein vom Bauchgefühl her würde ich sagen, dass PC-Lint den eigentlichen 
Zweck genauso gut erfüllt, bis auf die bereits genannten Punkte.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

etk552 schrieb:
> Die meisten sind aber nicht ganz zufrieden mit dem Tool, vor allem da
> die Konfiguration sehr umständlich sein kann und die Ausgabe der Fehler
> im Build Output nicht übersichtlich ist.

Das klingt nach Ausrede. Die Konfiguration muss man ein einziges Mal 
durchführen (und danach auf die anderen Entwicklungssysteme übertragen), 
und was soll da "unübersichtlich" sein? Eine Integration direkt in die 
verwendete IDE ist doch für das tägliche Arbeiten mit so einem Werkzeug 
das wichtigste; es als Standalone-Werkzeug neben der IDE zu nutzen 
verlockt a) dazu, es nicht zu tun und ist b) unkomfortabel bis 
fehlerträchtig, da man nicht mit einem Mausklick in den Editor an die 
betroffene Stelle springen kann.

Was Du alternativ in Erwägung ziehen könntest (ohne jetzt eine genaue 
inhaltliche Vergleichswertung anzustellen), wäre cppcheck
http://cppcheck.sourceforge.net/

Das muss natürlich auch in die IDE integriert werden, wenn man es 
komfortabel nutzen will ...

Oder die Verwendung von clang. Das ist zwar eigentlich ein Compiler, 
aber den kann man auch zur Codeanalyse einsetzen, und er ist wohl sehr 
gründlich.


Mal rein interessehalber:
Die Codesonar-Webseite ist eine typische Marketing-Bullshit-Webseite, 
die ein ganz wesentliches Detail ungenannt lässt, nämlich den Preis. Was 
wollen die dafür haben?

von etk552 (Gast)


Lesenswert?

Danke für die Informationen.

Das habe ich mir auch gedacht. Vor allem wenn man sich mal das White 
Paper:
"How Codesonar compares to PC-Lint" durchliest.
Da wird PC-Lint regelrecht schlecht geredet.

Preislich kann ich gerade nicht viel dazu sagen.
Die erste Nachfrage hat der Kontacktmann gekonnt ignoriert und auf die 
zweite Nachfrage fehlt mir noch eine Antwort.
Laut kurzer google Recherche scheint es aber relativ teuer zu sein. 
Mehrere kEuro.

PC-Lint ist recht günstig. Da kostet die Einzelplatzlizenz 340€, wenn 
man es über Keil bezieht.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Kann natürlich sein, daß in Deiner Firma irgendwelche Spezialitäten 
benötigt werden, die codesonar liefern kann, was weiß ich, irgendwelche 
schicken Codestatistiken, die die Schlipsträger in ihren monatlichen 
Excel-Tabellen und Powerpoint-Präsentationen unterbringen können, um ihr 
trostloses "Management"dasein irgendwie anzureichern.

Wenn es einfach nur darum geht, die üblichen Verdächtigen in 
C-/C++-Quelltexten zu finden, die der Compiler nicht selbst rausfinden 
kann, dann ist so ein Tool wie cppcheck schon mal ein Anfang, um einen 
Vorgeschmack zu finden.

Hier noch der fehlende Link auf clang:
https://clang-analyzer.llvm.org/

Das erfordert zwar etwas Aufwand, um es zum Laufen zu bekommen (sofern 
man nicht unter OS X arbeitet, muss man das Ding sich selbst aus Sourcen 
zusammenbauen), aber es sieht vielversprechend aus.

Spiel einfach mal mit beiden herum, kost' ja nix außer Zeit.

von Nop (Gast)


Lesenswert?

Lint wird nicht "schlechtgeredet", sondern bei einem teuren Tool wie 
CodeSonar darf man ja wohl erwarten, daß es Sachen findet, die Lint 
nicht findet. Das ist doch die erste Frage, die man als Kunde stellt: 
was kriegt man für diverse tausende Euro, was man für etliche hundert 
nicht bekommt?

Mein Rat: kontaktier den Vertrieb und hol Dir ne kostenlose, zeitlich 
begrenzte, rechnergebundene Eval-Lizenz. Gibt's allerdings nur für 
Firmenkunden. Dann spiel einfach mal damit herum und verschaff Dir einen 
Überblick, ob Dir das Produkt an sich zusagt.

Falls ja, ist die Frage, ob es den Preis wert ist. Das hängt auch davon 
ab, was denn ein Bug bei Euch im Mittel so kostet. Was wiederum davon 
abhängt, wie der Entwicklungsprozeß aussieht, welche Anforderungen zu 
erfüllen sind und wie kritisch die Kunden sind.

Wenn's eine Firma ist, die z.B. Apps, Spiele oder so für Endkunden 
herstellt, da lohnt sich nichtmal Lint, weil diese Kunden sowieso jede 
noch so verbugte Software kaufen - besonders schön zu sehen im 
Gamerbereich.

Falls Ihr aber Produkte herstellt, wo schlimmstenfalls Leute sterben 
könnten (z.B. Medizinbereich) und andere Leute (z.B. bei Euch) in den 
Knast wandern könnten, relativieren sich die Kosten doch stark.

Zu CppCheck, das kann ich unter allen Umständen empfehlen, zusätzlich. 
Egal, welche Tools schon vorhanden sind, aber mehr Checker sind immer 
besser. Zudem ist CppCheck kostenlos, und die Einarbeitungszeit liegt 
gefühlt im Sekundenbereich.

von etk552 (Gast)


Lesenswert?

Eine Evaluierungslizenz habe ich bereits und das Tool auch schon kurz 
angetestet. Bisher ist mir nichts aufgefallen, was Lint mit den 
richtigen Einstellungen nicht auch gefunden hat.
Aber wie gesagt, meine Tests waren bisher nicht ausführlich. Ich habe 
CodeSonar nur ein paar Mal drüberlaufen lassen.

Ansich würde es mir schon zusagen aber bisher habe ich noch kein 
Kaufargument gefunden, was die wirklich sehr hohen Kosten rechtfertigen 
würde.

Lint wird durch die Wortwahl und diverse Beispiele in den Papers schon 
schlecht geredet. Da werden Punkte aufgeführt, die nicht der Wahrheit 
entsprechen.

von Nop (Gast)


Lesenswert?

etk552 schrieb:

> Aber wie gesagt, meine Tests waren bisher nicht ausführlich. Ich habe
> CodeSonar nur ein paar Mal drüberlaufen lassen.

Naja, kommt halt auch auf den Code an. Wenn der tatsächlich fehlerfrei 
sein sollte, dann wird da kein Tool etwas finden.

Versuch doch mal, aus Deiner Versionsverwaltung ältere Versionen 
auszuchecken, wo Du weißt, daß da bestimmte Bugs drin sind, die man 
automatisiert finden könnte, und guck, welches Tool die findet.

> Lint wird durch die Wortwahl und diverse Beispiele in den Papers schon
> schlecht geredet. Da werden Punkte aufgeführt, die nicht der Wahrheit
> entsprechen.

Hast Du das mit Lint wirklich nachgeprüft? Und zwar mit exakt der 
Lint-Version, die in dem (vermutlich nicht 100% aktuellen) Paper 
verglichen wurde?

von A. S. (Gast)


Lesenswert?

Nop schrieb:
> Lint wird nicht "schlechtgeredet", sondern bei einem teuren Tool wie
> CodeSonar darf man ja wohl erwarten, daß es Sachen findet, die Lint
> nicht findet.

Dann wären IAR-Compiler auch besser als GNU. Das stimmt sicher nicht 
pauschal.

Mein Tip an den TO: Es kommt auf Deine Neigung an.

Wenn Du weisst, was ein makefile ist, Compiler und Linker unterscheiden 
kannst und auch mit Textfressern umzugehen weisst (Regulare Expressions 
sind kein Fremdwort), dann ist PC-Lint die erste Wahl. Egal ob Du MISRA 
einsetzen willst, neuen Code hast oder Legacy, Du wirst Dich wundern, 
wie gut und schnell ihr zusammenarbeitet und wie problemlos LINT in 
Deine IDE(s) und Workflows integriert ist (ohne jeden Mausklick später) 
und Du wirst Dich jeden Tag freuen, wie dich jedes Refactoring bis in 
höchste Warnstufen führt. Erspare Dir den Codesonar-Vertreter, da Du die 
Vorteile einfach nicht kapieren wirst.

Wenn Du eher der moderne Klicki-Bunti-Typ bist, der per Mausklick 
konfiguriert und Unit-Tests und McCabe favorisierst, dann wirst Du mit 
CodeSonar glücklich und produktiv sein. Du wirst erkennen, wie schlecht 
der legacy-Code anderer ist, wie wichtig guter Code ist und wieviel 
wichtiger gute Tools sind. Du wirst präzise Reports bekommen, welche 
Qualität Dein Code hat und wirst Dich blendend mit dem Vertreter 
Verstehen, da er genau auf Deine Bedürfnisse eingeht. Deine 
Programmierung wird auf ein neues Level gehoben, so dass Du Codesonar 
schon bald nicht mehr brauchst.

von Uhu U. (uhu)


Lesenswert?

Achim S. schrieb:
> Wenn Du eher der moderne Klicki-Bunti-Typ bist, ... Unit-Tests ...
> favorisierst

Weder Lint noch CodeSonar ist kein Ersatz für Tests und Unit-Tests 
verhindern so manches Desaster, vor allem nach größeren Umbauten. Was 
das mit Klicki-Bunti-Typen zu tun, ist mir rätselhaft...

Wem die Konfiguration von PC-Lint zu umständlich ist, der ist wohl 
entweder zu doof, oder zu faul, sich durch die vielen Optionen zu 
arbeiten und übersieht, dass man das eigentlich nur einmal machen muss.

Für solche Leute muss eben jemand mit entsprechender Qualifikation das 
Teil konfigurieren, damit den Dumpfbacken nicht mehr jeder Unsinn durch 
geht. Aber vermutlich ist es letzteres auch der Grund für das Gemaule...

von guest (Gast)


Lesenswert?

Nur so aus Interesse und auch weil ich gerade am evaluieren bin was ist 
der Unterschied zwischen CodeSonar und SonarCube? Bin für Hinweise auf 
wwww die den Unterschied der beiden erklären froh.

von Markus K. (markus-)


Lesenswert?

Nop schrieb:
>> Lint wird durch die Wortwahl und diverse Beispiele in den Papers schon
>> schlecht geredet. Da werden Punkte aufgeführt, die nicht der Wahrheit
>> entsprechen.
>
> Hast Du das mit Lint wirklich nachgeprüft? Und zwar mit exakt der
> Lint-Version, die in dem (vermutlich nicht 100% aktuellen) Paper
> verglichen wurde?

Na zumindest der Hersteller von PC-Lint behauptet, dass sie gewisse 
Features schon vor 15 Jahren eingebaut hätten und das Whitepaper 
behautpet, es gäbe sie nicht.
Quelle: http://www.gimpel.com/html/pclint_TRUTH.pdf

Wir setzen auch PC-Lint ein und ich fand die konfiguration jetzt nicht 
sooo schwierig.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.