update
This commit is contained in:
parent
7cab7eab1b
commit
329145eb50
@ -1277,7 +1277,6 @@ add_code_coverage(${TRGT})
|
|||||||
|
|
||||||
Пример анализа покрытия кода на примере проекта `cmlib-example-app-features`:
|
Пример анализа покрытия кода на примере проекта `cmlib-example-app-features`:
|
||||||
|
|
||||||
|
|
||||||
[source,sh]
|
[source,sh]
|
||||||
----
|
----
|
||||||
mkdir -p _build/debug
|
mkdir -p _build/debug
|
||||||
@ -1289,6 +1288,32 @@ make coverage-cmlib-example-app-features
|
|||||||
make coverage-report-cmlib-example-app-features
|
make coverage-report-cmlib-example-app-features
|
||||||
----
|
----
|
||||||
|
|
||||||
В результате в каталоге `report-cmlib-example-app-features` будет сформирован
|
После выполнения этих команд в каталоге `report-cmlib-example-app-features`
|
||||||
отчёт о покрытии кода во время выполнения программы в виде HTML-страниц.
|
будет сформирован отчёт в виде 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
|
||||||
|
----
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user