Background Image
 1 / 22 Next Page
Information
Show Menu
1 / 22 Next Page
Page Background

УДК 004.4’2

МЕТОД РЕЗЮМЕ ДЛЯ РАЗРАБОТКИ УНИВЕРСАЛЬНОГО

МНОГОЦЕЛЕВОГО АНАЛИЗАТОРА КОДОВ ПРОГРАММ

С ВОЗМОЖНОСТЬЮ ОБНАРУЖЕНИЯ РАЗЛИЧНЫХ КЛАССОВ

ДЕФЕКТОВ В ПРОГРАММАХ, СОЗДАННЫХ С ИСПОЛЬЗОВАНИЕМ

ЯЗЫКОВ С И С++

Т.Н. Романова

1

,

А.В. Сидорин

1

,

2

1

МГТУ им. Н.Э. Баумана, Москва, Российская Федерация

e-mail:

rtn51@mail.ru

2

Московский исследовательский центр 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.ru

2

Samsung R&D Institute Rus, Moscow, Russian Federation

e-mail:

alexey.v.sidorin@yandex.ru

The 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