Как я могу получить информацию о покрытии кода для программы на Си, попавшей в бесконечный цикл? - PullRequest
0 голосов
/ 18 сентября 2018

Мне нужно получить информацию о покрытии кода для ряда программ на Си.Мне нужно только знать, выполняется ли каждая строка.Однако некоторые из них никогда не закончатся ради бесконечных петель.Большинство инструментов, например, gcov, llvm-cov, которые могут получить информацию о программе только после ее завершения.Я установил ограничение по времени для всех программ.Если он не закончится, когда его время истечения превысит ограничение, его процесс будет убит.Однако, когда его процесс был убит, вся информация, хранящаяся в памяти, очищается.Поэтому я не могу получить информацию о покрытии кода для этих программ.Как я могу это сделать?

1 Ответ

0 голосов
/ 29 октября 2018

Простым решением было бы добавить небольшое прерывание таймера внутри вашей программы, которое вызовет исключение после нескольких секунд «плохого поведения» и приведет к хорошему завершению программы.

При поиске и поискевременная мода, за которой вы, похоже, следовали, вполне законно «взломать», если вы удалите хак сразу, как только обнаружите ошибку.

...