УДК 004.4’2
МЕТОД РЕЗЮМЕ ДЛЯ РАЗРАБОТКИ УНИВЕРСАЛЬНОГО
МНОГОЦЕЛЕВОГО АНАЛИЗАТОРА КОДОВ ПРОГРАММ
С ВОЗМОЖНОСТЬЮ ОБНАРУЖЕНИЯ РАЗЛИЧНЫХ КЛАССОВ
ДЕФЕКТОВ В ПРОГРАММАХ, СОЗДАННЫХ С ИСПОЛЬЗОВАНИЕМ
ЯЗЫКОВ С И С++
Т.Н. Романова
1
,
А.В. Сидорин
1
,
2
1
МГТУ им. Н.Э. Баумана, Москва, Российская Федерация
e-mail:
rtn51@mail.ru2
Московский исследовательский центр Samsung, Москва,
Российская Федерация
e-mail:
alexey.v.sidorin@yandex.ruПриведено подробное описание разработанного метода межпроцедурного ана-
лиза с использованием резюме для метода символьного выполнения. Этот ме-
тод реализован на модели анализатора Clang Static Analyzer, что позволило
использовать метод резюме для разработки универсального многоцелевого ана-
лизатора с возможностью поиска различных классов дефектов в программах,
разработанных с использованием языков C и C++. Описаны методы сбора и
применения резюме для метода символьного выполнения, перевода символьных
значений из контекста вызывающей функции в контекст вызываемой и обрат-
но. Разработан и описан метод построения отчета о дефекте с использова-
нием метода резюме для межпроцедурного анализа. Исследование проведено
в целях построения анализатора, способного осуществлять межпроцедурный
анализ крупных программных комплексов масштаба операционной системы
Android за приемлемое время. Приведены данные измерений времени анализа и
выполнено сравнение результатов методов резюме и метода встраивания.
Ключевые слова
:
метод резюме, межпроцедурный анализ, символьное выпол-
нение, Clang Static Analyzer, поиск дефектов, построение отчета, C/C++.
SUMMARY-BASED INTERPROCEDURAL ANALYSIS METHOD
FOR IMPLEMENTATION IN MULTI-PURPOSE STATIC
C/C++ CODE ANALYZER
T.N. Romanova
1
,
A.V. Sidorin
1
,
2
1
Bauman Moscow State Technical University, Moscow, Russian Federation
e-mail:
rtn51@mail.ru2
Samsung R&D Institute Rus, Moscow, Russian Federation
e-mail:
alexey.v.sidorin@yandex.ruThe paper gives a detailed describtion of the summary-based interprocedural analysis
method developed for the symbolic execution method. This method is implemented in
the analyzer model of Clang Static Analyzer, using its framework. This allows using
the summary-based method for developing a multi-purpose analyzer with the ability
to search for various defects in programs with C and C++ software codes. The author
describe summary collecting methods and their application in symbolic execution, as
well as in translating symbolic meanings from a callee context to a caller one and
vice versa. The method of the defect report building with the help of the summary-
based interprocedural analysis method is also developed and presented in the paper.
The research aims at developing an analyzer suitable for doing an interprocedural
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2015. № 5 75