Details

Title: Ускорение вычисления точек останова с условием в отладчиках программ на JVM-языках на примере интегрированной среды разработки IntelliJ IDEA: выпускная квалификационная работа бакалавра: направление 09.03.01 «Информатика и вычислительная техника» ; образовательная программа 09.03.01_02 «Технологии разработки программного обеспечения»
Creators: Рубан Станислав Дмитриевич
Scientific adviser: Ахин Марат Халимович
Organization: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Imprint: Санкт-Петербург, 2022
Collection: Выпускные квалификационные работы; Общая коллекция
Subjects: отладка программ; отладчики; точки останова с условием; платформа Java; Java; IntelliJ IDEA; инструментирование байткода; debugging; debuggers; conditional breakpoints; Java platform; bytecode instrumentation
Document type: Bachelor graduation qualification work
File type: PDF
Language: Russian
Level of education: Bachelor
Speciality code (FGOS): 09.03.01
Speciality group (FGOS): 090000 - Информатика и вычислительная техника
DOI: 10.18720/SPBPU/3/2022/vr/vr22-997
Rights: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Record key: ru\spstu\vkr\17152

Allowed Actions:

Action 'Read' will be available if you login or access site from another network Action 'Download' will be available if you login or access site from another network

Group: Anonymous

Network: Internet

Annotation

Тема выпускной квалификационной работы: "Ускорение вычисления точек останова с условием в отладчиках программ на JVM-языках на примере интегрированной среды разработки IntelliJ IDEA".Данная работа посвящена решению проблемы низкой производительности точек останова с условием в рамках платформы Java. В ходе работы решались следующие задачи:анализ существующий реализаций точек останова с условием на платформе Java;разработка подхода к ускорению вычисления точек останова в отладчиках для JVM-языков; разработка реализующего данный подход прототипа в виде расширения отладчика интегрированной среды разработки IntelliJ IDEA для языка программирования Java;тестирование прототипа и оценка его производительности.Разработанный подход основан на динамическом инструментировании условий срабатывания точек останова в исполняемый JVM-байткод отлаживаемого программного обеспечения.В результате выполнения работы была получена воплощающая разработанный подход реализация точек останова с условием, а также продемонстрировано отсутствие потерь производительности при её использовании.

The subject of the bachelor's thesis: "Speeding up evaluation of conditional breakpoints in debuggers of JVM languages on the example of the IntelliJ IDEA integrated development environment". This thesis is devoted to fixing low performance of conditional breakpoints on the Java platform. The following objectives were examined as a part of the thesis:analysis of existing implementations of conditional breakpoints on the Java platform;development of an approach that would increase performance of conditional breakpoints in debuggers of JVM languages;development of a prototype implementing said approach as an extension of the IntelliJ IDEA integrated development environment's Java debugger;testing of the prototype and evaluation of its performance.The resulting approach is based on dynamic instrumentation of the program-under-debug's JVM bytecode with breakpoint conditions.An implementation of conditional breakpoints following the approach in question was acquired as a result of this thesis. It was also shown to function without any performance losses.

Document access rights

Network User group Action
ILC SPbPU Local Network All Read Print Download
Internet Authorized users SPbPU Read Print Download
-> Internet Anonymous

Table of Contents

  • СПИСОК ОБОЗНАЧЕНИЙ И СОКРАЩЕНИЙ
  • ВВЕДЕНИЕ
  • 1. Обзор существующих реализаций
    • 1.1. Точки останова и точки останова с условием
    • 1.2. Ручная отладка программ на платформе Java
      • 1.2.1. Архитектура отладчика для платформы Java
      • 1.2.2. Точки останова на платформе Java
    • 1.3. Обзор отладчиков разных ИСР для ЯП Java
    • 1.4. Точки останова с условием на других платформах
    • 1.5. Резюме
  • 2. Постановка задач работы
    • 2.1. Ускорение вычисления ТОУ на платформе Java
    • 2.2. Улучшение отладчика ИСР IntelliJ IDEA для ЯП Java
    • 2.3. Резюме
  • 3. Разработка метода решения проблемы
    • 3.1. Рассмотрение подходов к решению проблемы
      • 3.1.1. Расширение функциональности JPDA
      • 3.1.2. Динамическое инструментирование JVM-байткода
    • 3.2. Резюме
  • 4. Разработка прототипа
    • 4.1. Общее описание прототипа
    • 4.2. Java-агент для инструментирования отлаживаемого ПО
      • 4.2.1. Процесс инициализации Java-агента
      • 4.2.2. Инструментирование целевых классов и методов
      • 4.2.3. Обновление JVM-байткода загруженных классов
    • 4.3. Сторона отладчика ИСР IntelliJ IDEA для ЯП Java
      • 4.3.1. Отслеживание внутренних событий ИСР
      • 4.3.2. Ведение актуального перечня ТОУ
      • 4.3.3. Предобработка условий срабатывания точек останова
    • 4.4. Резюме
  • 5. Тестирование и анализ результатов
    • 5.1. Ручное функциональное тестирование прототипа
    • 5.2. Анализ результатов работы
      • 5.2.1. Оценка производительности прототипа
      • 5.2.2. Ограничения прототипа
      • 5.2.3. Результаты тестирования прототипа
    • 5.3. Направления дальнейшей работы
    • 5.4. Резюме
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ 1. Листинги программ для оценки производительности реализаций точек останова с условием
  • ПРИЛОЖЕНИЕ 2. Листинги исходного кода Java-агента для инструментирования отлаживаемого ПО
  • ПРИЛОЖЕНИЕ 3. Листинги исходного кода плагина для ИСР IntelliJ IDEA
  • ПРИЛОЖЕНИЕ 4. Листинги общего исходного кода компонент прототипа
  • ПРИЛОЖЕНИЕ 5. Листинги исходного кода, использованного при функциональном тестировании прототипа

Usage statistics

stat Access count: 25
Last 30 days: 0
Detailed usage statistics