6

マルチスレッド アプリケーションのカバレッジ テストに gcov を使用できますか?

コードベースのいくつかの簡単なテストを設定しましたが、達成しているカバレッジについてある程度のアイデアを持っているとよいでしょう. gcov が適切でない場合、誰かが代わりのツール (可能であれば oprofile) を推奨できます。

4

3 に答える 3

8

マルチスレッドアプリケーションのカバレッジ情報を取得するために、確かにgcovを使用しました。

動的コードをカバーできるgcc4.3でコンパイルしたいとします。

オプションを使用してコンパイルする-fprofile-arcs -ftest-coverageと、コードはgcovが処理できる.gcdaファイルを生成します。

製品の個別のビルドを行い、単体テストと回帰テストを実行して、そのカバレッジを収集します。

最後に、lcovを使用してHTML結果ページを生成します。

于 2008-09-01T19:19:56.383 に答える
1

Gcov は、マルチスレッド アプリで正常に動作します。インストルメンテーション アーキテクチャは適切にシリアル化されているため、忠実度の高いカバレッジ データが得られます。

lcovと組み合わせて gcov を使用することをお勧めします。これにより、プロジェクト全体から個々のソース ファイルに至るまでの優れたレポートが得られます。

lcov はまた、適切に色分けされたソースの HTML バージョンを提供するので、カバレッジの失効をすばやく評価できます。

于 2009-06-16T11:50:26.073 に答える
0

マルチスレッドカバレッジ作業にgcovを使用したことはありません。ただし、MacOSでは、AppleのSharkツールが複数のスレッドを処理します。これは主にプロファイラーですが、カバレッジ情報も実行できます。

http://developer.apple.com/tools/sharkoptimize.html

于 2008-09-01T19:27:28.737 に答える