GCOV für multi-threaded-Anwendungen
-
09-06-2019 - |
Frage
Ist es möglich mit gcov Abdeckung testen von multi-Thread-Anwendungen?
Ich habe einige triviale tests unserer code-Basis, aber es wäre schön zu haben, eine Vorstellung von der Reichweite wir erreichen.Wenn gcov nicht angemessen ist, kann jemand eine alternative empfehlen tool (möglich oprofile), idealerweise mit einigen guten Dokumentation auf erste Schritte.
Lösung
Wir haben sicherlich verwendet gcov Berichterstattung Informationen über unsere multi-threaded-Anwendung.
Sie wollen zum kompilieren mit gcc 4.3 die Berichterstattung über dynamische code.
Sie kompilieren mit -fprofile-arcs -ftest-coverage
Optionen, und der code wird generiert .gcda-Dateien, die gcov können dann verarbeiten.
Wir tun eine separate bauen unser Produkt und sammeln Sie die Abdeckung auf, dass, ausführen von unit-tests und Regressionstests.
Schließlich verwenden wir lcov zum generieren von HTML-Ergebnis-Seiten.
Andere Tipps
Gcov funktioniert gut für multi-threaded-Anwendungen.Die Instrumentierung Architektur ordnungsgemäß serialisiert so erhalten Sie Daten zur Durchimpfungsrate der guten treue.
Ich würde vorschlagen, mit gcov in Verbindung mit lcov.Dadurch erhalten Sie großartige Berichte Gültigkeitsbereich von vollständigen Projektes bis hin zu individuellen Quellcode-Dateien.
lcov gibt Ihnen auch eine schön Farbe codierte HTML-version Ihrer Quelle, so können Sie schnell bewerten Ihr Versicherungsschutz erlischt.
Ich habe nicht verwendet gcov für multi-threaded-Abdeckung arbeiten.Aber auf MacOS die Hai-tool von Apple, Griffen mehrere threads.Es ist in Erster Linie ein profiler, sondern können das tun coverage info zu.