2017-02-21 5 views
0

I Coverity mit Code C. BefehlCoverity: der Build-Capture-Anteil ist unerwünscht 0%

Config zu analysieren:

cov-configure --compiler /opt/toolchains/stbgcc-4.5.4-2.9/bin/mipsel-linux-uclibc-gcc --comptype gcc --config /opt/cov-analysis-linux64-7.5.1/config/coverity_config.xml

und Konfigurationsschritt erfolgreich ist.

Build-Befehl:

cov-build --dir ../platform/drivers --record-only --encoding EUC-KR sudo make platform FORCE=1

Wenn Coverity Build beendet hatte, ich in sah build-log: COV-Build-Dienstprogramm erfolgreich abgeschlossen. Und die Warnung in der Pop-up-Block:

the build capture percentage is undesirably 0%

error

Dann werden die Daten i analysieren noch:

Befehl Analyse:

cov-analyze --user-model-file >~/work/CoverityData/stdioUserModel.xmldb --parse-warnings-config >~/work/CoverityData/parse_warnings.conf --dir ../platform/drivers/ >--all --checker-option NO_EFFECT:extra_comma:0 -j 4

und ich bekam Fehler:

Error: intermediate directory contains no translation units.

Ich vermute, die Warnung in Build-Schritt machte den Fehler im Analyseschritt.

Bitte helfen Sie mir, dies zu lösen.

+3

Durch Kontaktaufnahme mit [email protected]? BTW ist dein Code C * und * Java? Wie können Sie mit dem Fehlen von Code oder Hintergrundinformationen erwarten, dass jemand einen Zauberstab für Sie schwenkt? –

+0

Ein guter erster Start, um herauszufinden, warum das Build-Protokoll zu überprüfen ist. Hat dein Build tatsächlich etwas bewirkt? Wurden Ihre Compiler korrekt konfiguriert? – Caleb

Antwort

1

Das Problem kann mit dem --record-only Teil Ihres cov-build Aufrufs sein - der die Compileraufrufe erfasst, aber nicht wirklich ausstrahlt. Versuchen Sie, das zu entfernen und versuchen Sie es erneut. Alternativ könnten Sie cov-build --replay -j X verwenden, um diese Compilations erneut abzuspielen. Einige Einschränkungen gelten, es ist normalerweise am besten, die Compilations direkt zu erfassen.

Bitte beachten Sie, dass sudo in Ihrem Build-Befehl außerordentlich gefährlich und sollte vermieden werden. Ist es wirklich notwendig?

+0

Hallo Caleb. Entschuldige, dass du deine Zeit verschwendest. Ihr Recht. Ich habe beim Kopieren/Einfügen des Build-Befehls einen Fehler gemacht. Ich habe den Build-Befehl auf obige Frage festgelegt. Bitte überprüfen Sie und geben Sie mir eine Idee. –

+0

Ich habe meine Antwort aktualisiert, aber es ist eine fundierte Vermutung - ich würde das Build-Protokoll benötigen, um mit Sicherheit feststellen zu können, ob das das Problem ist. – Caleb

0

Sie sollten in der Datei build_log einchecken, die sich in ../platform/drivers/ befindet. Suchen Sie nach Zeilen, die [ERROR] enthalten - Fehler beim Suchen von Headerdateien usw.

Eine andere Möglichkeit besteht darin, zuerst einen Testaufbau durchzuführen - dies ist möglicherweise nur von der IDE möglich -, um sicherzustellen, dass der Build korrekt aufgerufen wird

Verwandte Themen