77281

To Reality of Automation Debugging of Programs with Large Executing Time

Научная статья

Информатика, кибернетика и программирование

Shrf Yekterinburg Debugging is process of locliztion nd correction of progrm errors. Modern debuggers supporting monitoring during progrm execution help in locliztion of errors. But lmost ll of monitoring control nd the dt nlysis re entrusted to progrmmers.

Английский

2015-02-02

23 KB

0 чел.

To Reality of Automation Debugging of Programs with Large Executing Time

Elena V. Rubilova, Sergey V. Sharf

Yekaterinburg

Debugging is a process of localization and correction of program errors. Modern debuggers supporting monitoring during program execution, help in localization of errors. But almost all of monitoring control and the data analysis are entrusted to programmers. It is seemed, that for many types of errors one may automate partly analysis process. There are tools that take a part of the analysis on itself for errors of the some types, for example, memory escapes and use of indeterminate indexes. The automatic analysis is widely applied in the systems supporting relative (comparative) debugging. The standard program and/or the standard run of given systems are used and traces of program execution are kept.

Notice however, that debugging is always the comparative process. But as usual the standard is presented only in a mental form in users mind. Thus for the beginning the error search it is important to know only about abnormality of the program data. In particular, abnormality markers may be connected with such program failures as division into a zero, the incorrect memory references or operations of an assert-condition. In case of “floating” errors, analysis of the program data generated during different runs, may allow to find out distinguished values of variables under consideration. In other cases it is possible to base on the programmer instruction.

It is difficult task to build dependences of concrete value from other. There is solving of its task during compilation processes, but for some unknown reason the results do not use in debuggers.

Our main idea consists of revealing of dependences for a variable containing the incorrect data, and finding based on them the place of an error in the program. To evaluate complexity of various approaches to realization of this idea the prototype of a relative debugger is developed now. This debugger is realized partly. Also the new command is added to GDB debugger.

Architecturally the relative debugger prototype consists of functional blocks, each of them may be realized separately. The prototype framework is realized as a set of Java classes and interfaces with concretization to debug by GDB-debugger C programs. Comparison of program data, a finding of discrepancy on control points and localization of initial discrepancy is carried out. The following problems were found out.

When programs are changed there are difficulties with automatic comparison of code fragments from one and another variants of the program. But when a usual debugger is under consideration there are no any changes in the program in case of a floating error. One of ways to overcome these difficulties is to realize an effective user-debugger interaction. That is efficiency may be achieved by well designed interface and increasing of debugging means.

In the case of programs with large executing time the error waiting time is too large also. In turn that is why the debugging time is large in the case when debuggers are based on restarts of programs. We suppose that in our case this time may be shorter by application of state conservation points. Furthermore the number of restarts may be reduced by deeper monitoring and the analysis of its results.

The addition of the new command in GDB debugger has shown, that this way is real also. The choice of control points at the following start sets a history of change of a variable. The analysis of a history is carried out due to installation of a point of tracking with preservation of a place of updating of variable values. The results of our projects allow to draw a conclusion about an opportunity of the further automation of debugging process. Thus the question is, first of all, simplification of search for difficult cases of floating errors in programs with large executing time, including parallel ones.


 

А также другие работы, которые могут Вас заинтересовать

40523. Принципы классификации звуков речи. Гласные и согласные 20.5 KB
  Гласные и согласные. акустический Гласные состоят из тона согласные либо из шума либо из шума тона. артикуляторный 1 при образовании гласных напрягается весь речевой аппарат при образовании согласных напряжение локализовано 2 по силе выдыхаемой воздушной струи при образовании гласных голосовая струя слабее 3 Функционально различаются по роли в слоге гласные – слогообразующие согласные – примыкают к ним 4 По сочетаемости.
40524. ПРИНЦИПЫ ФОНЕМОЛОГИИ 77.5 KB
  В языке нет и не может быть элементов не выделенных в известном определенном отношении к его семантической стороне или лучше сказать к характерной для данного языка системе семасиологизации и в этом смысле всякое языковое явление как предмет лингвистики конечно значимо . Однако отношение звуковой стороны к семантической может быть двояким: внеконтекстовые единства звуковых признаков выделенные в отношении к системе индивидуальных значимостей [7] в языке и будут лингвистическим соответствием психофонетической фонемы иначе значимых ...
40525. Синонимия, ее виды, источники и роль в языке. Антонимия. Языковая и контекстуальная антонимия 21.5 KB
  Антонимия. Языковая и контекстуальная антонимия. Антонимия. Речевая антонимия контекстная.
40526. Стилистическое расслоение словарного состава я:зыка 20.5 KB
  Все слова языка можно разделить на: нейтральные межстилевые – в любом стиле литературного языка.
40527. Структура языка, его системность. Основные единицы языка, их функции 38.5 KB
  Уровень Единица Функция Пример Фонетикофонологический Фонема звук перцептивная восприятия Сигнификативная смыслоразличительная Том – дом Угол – уголь Морфемноморфологический Морфема Семасиологическая выражение значения Приставка с Суффикс щик Лексикосемантический Слово – лексема слово с точки зрения его значения Номинативная назывная Окно Синтаксический Предложение Коммуникативная Мама мыла раму Системность уровня Единицы внутри уровня взаимосвязаны изменение одной единицы приводит к перегруппировке всего уровня. –...
40528. Типы лексических значений слова. Многозначность и пути ее развития 33 KB
  Типы лексических значений слова. Предметная отнесенность слова денотативный компонент значения. Обычно слово – предмет действие или признак – номинативная функция знаменательные слова. Числительные междометия служебные слова не имею денотативного компонента.
40529. Язык как особая знаковая система. Язык и мышление 33 KB
  Язык как особая знаковая система. Язык и мышление. Язык как особая знаковая система. Язык – знаковая система естественно возникшая закономерно развивающаяся социально предназначенная.
40530. Омонимия, ее виды, источники и роль в языке. Разграничение омонимии и полисемии 21 KB
  Омонимия – разные слова с одинаковым звуковым составом. Типы омонимов: лексические омонимы слова относящиеся к одному грамматическому разряду имеют одинаковое звучание и написание: лук. омоформы – слова у которых совпадают определенные грамматические формы. омофоны – слова которые одинаково звучат но пишутся поразному.
40531. Графика 15.24 KB
  Состоят из: Правила чтения напр. u может быть ju ʌ или u Правила написания напр. Правила орфографии – правила написания значащих языковых единиц морфем и слов Правила орфоэпии – правила озвучивания при чтении значащих языковых единиц морфем и слов Правила орфографии строятся на базе правил графики и нужны ТОЛЬКО если по правилам графики есть вариант напр.