2008-09-07 10 views
0

Есть ли какой-нибудь инструмент, который позволит мне выполнять бесплатный текстовый поиск по коду системы, но только над кодом, который был фактически выполнен во время определенного вызова?Бесплатный текстовый поиск, интегрированный с охватом кода

Чтобы получить немного фона, когда я узнаю свой путь вокруг новой системы, я часто обнаруживаю, что хочу узнать, откуда взялось какое-то определенное значение, но поиск всей базы кода приводит к гораздо большему количеству совпадений, чем я могу разумно оценить индивидуально.

Для чего это стоит, я хотел это в Perl и Java в одно и то же время, но мне бы хотелось знать, есть ли на каких-либо языках система, поддерживающая эту функцию.

ответ

1

Вы можете повредить рычаг инструмента покрытия кода и получить отчет, который показывает пути, которые были выполнены во время данного прогона. В этом отчете должен отображаться сам код, причем первые несколько столбцов отмечены в соответствии с конкретными обозначениями инструмента покрытия, был ли данный путь выполнен.

Возможно, вы сможете использовать это прямо, или вам, возможно, придется предварительно обработать его и либо удалить код, который не был выполнен, либо добавить новую нотацию в каждую строку, которая сообщает, была ли она выполнена (большинство инструментов будут только информация показать путь в контрольных точках):

так от инструмента покрытия вы можете получить такой отчет:

T- if(sometest) 
    { 
x  somecode; 
    } 
    else 
    { 
-  someother_code; 
    } 

обозначение T- означает, что если заявление только когда-либо оценивали истинно, и поэтому только первая часть кода выполнена. Позднее обозначение «x» указывает, что эта строка выполнена.

Вы должны иметь возможность создавать регулярное выражение, которое соответствует только тогда, когда первый столбец содержит T, F или x, чтобы вы могли захватить все выполняемые управляющие инструкции и выполняемые строки.

Иногда вы получаете информацию о покрытии только в каждой контрольной точке, которая затем требует, чтобы вы проанализировали файл C и отметили сами строки выполнения. Не так просто, но и невозможно.

Тем не менее, это звучит как интересный вопрос, где решение, вероятно, больше работы, чем это стоит ...

-Adam

 Смежные вопросы

  • Нет связанных вопросов^_^