Вы можете повредить рычаг инструмента покрытия кода и получить отчет, который показывает пути, которые были выполнены во время данного прогона. В этом отчете должен отображаться сам код, причем первые несколько столбцов отмечены в соответствии с конкретными обозначениями инструмента покрытия, был ли данный путь выполнен.
Возможно, вы сможете использовать это прямо, или вам, возможно, придется предварительно обработать его и либо удалить код, который не был выполнен, либо добавить новую нотацию в каждую строку, которая сообщает, была ли она выполнена (большинство инструментов будут только информация показать путь в контрольных точках):
так от инструмента покрытия вы можете получить такой отчет:
T- if(sometest)
{
x somecode;
}
else
{
- someother_code;
}
обозначение T- означает, что если заявление только когда-либо оценивали истинно, и поэтому только первая часть кода выполнена. Позднее обозначение «x» указывает, что эта строка выполнена.
Вы должны иметь возможность создавать регулярное выражение, которое соответствует только тогда, когда первый столбец содержит T, F или x, чтобы вы могли захватить все выполняемые управляющие инструкции и выполняемые строки.
Иногда вы получаете информацию о покрытии только в каждой контрольной точке, которая затем требует, чтобы вы проанализировали файл C и отметили сами строки выполнения. Не так просто, но и невозможно.
Тем не менее, это звучит как интересный вопрос, где решение, вероятно, больше работы, чем это стоит ...
-Adam