This commit is contained in:
Andrei Astafev 2020-04-14 21:52:10 +03:00
parent 7cab7eab1b
commit 329145eb50

View File

@ -1277,7 +1277,6 @@ add_code_coverage(${TRGT})
Пример анализа покрытия кода на примере проекта `cmlib-example-app-features`:
[source,sh]
----
mkdir -p _build/debug
@ -1289,6 +1288,32 @@ make coverage-cmlib-example-app-features
make coverage-report-cmlib-example-app-features
----
В результате в каталоге `report-cmlib-example-app-features` будет сформирован
отчёт о покрытии кода во время выполнения программы в виде HTML-страниц.
После выполнения этих команд в каталоге `report-cmlib-example-app-features`
будет сформирован отчёт в виде HTML-страниц.
=== Профилирование кода
Библиотека CMLib предоставляет вариант сборки для профилирования кода,
для которого можно сгенерировать сборочные файлы, присвоив переменной
`CMAKE_BUILD_TYPE` значение `Profile`:
[source,sh]
----
mkdir -p _build/profile
cd _build/profile
cmake ../.. -DCMAKE_BUILD_TYPE=Profile
----
По окончании работы исполняемого файла будет сгенерирован файл
`gmon.out`, по данным из которого можно строить отчёты утилитой `gprof`.
Например:
[source,sh]
----
./cmlib-example-app-features
gprof -b cmlib-example-app-features gmon.out > analysis-tree.txt
gprof -b -p cmlib-example-app-features gmon.out > analysis-flat.txt
----