Я использую gcov для сбора данных покрытия кода для проекта C, над которым я работаю. Я понимаю, что gcov сбрасывает данные покрытия кода после выхода программы после завершения. Как собирать данные gcov для длительных процессов. (скажем, моя программа является ядром операционной системы, которая работает на сервере, который никогда не выключается - и мне нужно собирать данные о покрытии кода для него). Есть ли способ периодически получать данные о покрытии кода дампа gcov (скажем, каждые 1 час) или на определенном событии - как я могу вызвать данные покрытия кода дампа gcov (а не ждать, пока gcov сделает это после завершения программы)?Сброс данных gcov во время выполнения
0
A
ответ
1
Периодически звоните __gcov_flush()
.
Это может быть сделано путем ассоциирования signal handler:
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
void __gcov_flush();
static void catch_function(int signal) {
__gcov_flush();
}
int main(void) {
if (signal(SIGINT, catch_function) == SIG_ERR) {
fputs("An error occurred while setting a signal handler.\n", stderr);
return EXIT_FAILURE;
}
while(1);
}
Compile регулярно: gcc sig.c -ftest-coverage -fprofile-arcs
Затем тумблер (периодический) обновление по kill -2 process_id
Смежные вопросы
- 1. отключить покрытие gcov во время выполнения
- 2. Сброс данных со списком данных Datagridview во время выполнения
- 3. Сброс кучи процесса Go во время выполнения
- 4. QProcess: Сброс рабочего каталога во время выполнения
- 5. Прерывание во время исполнения во время выполнения
- 6. Пользовательская форма Значение свойства сохраняет сброс во время выполнения
- 7. Соблюдение данных привязки данных во время выполнения
- 8. Создание базы данных во время выполнения и регистрации его в качестве источника данных во время выполнения
- 9. Дженерики во время выполнения
- 10. AccessViolationException во время выполнения
- 11. gcov: 0% ошибка выполнения строки
- 12. Добавить поддержку базы данных во время выполнения
- 13. Определить типы данных во время выполнения
- 14. изменить базу данных во время выполнения codeigniter
- 15. Недостаточно данных: во время выполнения Disqus SSO
- 16. Измените запрос базы данных во время выполнения
- 17. видимость данных во время (/ после) выполнения потока
- 18. Невозможно создать базу данных во время выполнения
- 19. Создание баз данных во время выполнения
- 20. Переназначение источника данных во время выполнения
- 21. Grails: настройка источника данных во время выполнения
- 22. emma - нет данных покрытия во время выполнения
- 23. Сегмент данных во время выполнения программы
- 24. JPA2 подключение базы данных во время выполнения
- 25. Обновление данных круговой диаграммы во время выполнения
- 26. Lightswitch: динамическое связывание данных во время выполнения
- 27. создание типов данных во время выполнения
- 28. Как аннотации данных преобразуются во время выполнения?
- 29. Обновление статических данных (кэширование) во время выполнения
- 30. Xtra Grid Сортировка данных во время выполнения?