tmpa-2015: multi-module application tracing in z/os environment
Post on 17-Feb-2017
1.708 Views
Preview:
TRANSCRIPT
Трассировка многомодульного приложения в среде
операционной системы z/OS
Ростислав Ефремовcтудент математико-механического
факультета СПБГУSoftware Engineer, EMC
Slava.efremov1994@mail.ru
TMPA 2015
Mainframe – System Z
• Канальная подсистема• Высокая надежность• Система безопасности• Обратная совместимость• Нишевый продукт
2
Проблемы Mainframe
3
• Обратная совместимость• Закрытость разработок• …
• Чтобы с этим справиться важно иметьинструменты исследования приложений среды ОС z/OS
Трасса выполнения
Применение:• Анализ/чтение трассы как средство отладки
и понимания работы программы• Построение различных продуктов для
анализа трассы (например, состояние гонки, целостность данных)
4
Трассировка
Подходы к трассировке HLASM программ:• Статическая инструментация• Динамическая инструментация• Использование средств ОС z/OS
– GTF trace– SYSTRACE– SLIP trace
5
План
• Поиск методов статической инструментации бинарного кода
• Сравнение их производительности• Исследование воздействия методов на
окружение исследуемой программы• Выбор метода и реализация прототипа
трассировщика
6
Методы статической инструментации
7
..SVC 2420000TRAP2..
MODULE11)Make trace record2)Execute the instruction2)Resume execution
SVC routine
..instruction..
MODULE1
1)Make trace record2)Execute the instruction2)Resume execution
RECOVERY or ESPIE routine
1)Make trace record2)Execute the instruction2)Resume execution
TRAP routine
В результате инструментации instruction заменится на один из вариантов:• SVC 242 – вызов SVC routine• 0000 – вызывает обработчик ABEND• TRAP2 – вызов TRAP routine
Сравнение производительности
8
Методы трассировки
• Recovery routine/ESPIE– Метод достаточно медленный (ESTAI)– Сильные ограничения на окружение
• SVC hooking– Метод быстрый– Средние ограничения на окружение– Привилегированный режим
• TRAP– Очень быстрый метод– Слабые ограничения на окружение
9
Существующие инструменты
• IDF (Interactive Debug Facility)– RECOVERY/SVC
• z/XDC (Extended Debugging Controller)– RECOVERY/SVC
• TDF (Trap Debug Facility)– TRAP
• RootCause for z/OS– ?
10
SVC hooking
SVC hooking• Реализовано в z/XDC и IDF• Работает в любом окружении z/OS кроме
SRB, cross memory mode• Проще в реализации, чем TRAP• Специфика реализации позволяет добавить
TRAP трассировку для SRB и cross memory
11
Пример вывода
12
Разработано
• Программа, реализующая все четыре метода перехвата прыжков– Тестирование скорости– Код для TRAP и ESTAE можно переносить в тестировщик
• Прототип трассировщика на SVC hooking– Разработан аналог соответствующим механизмам в IDF
и z/XDC– Работает в любом окружении z/OS кроме SRB, cross
memory mode– Нет проблем с авторизацией в отличие от TRAP– Позволяет добавить использование TRAP
подпрограммы для трассировки13
Перспективы
• Добавление поддержки SRB и разных режимов адресных пространств:– Добавление TRAP подпрограммы трассировки – Развитие анализатора кода
• Поиск способов трассировки SRB в secondary address space mode
• Реализация интерфейса для задания входных наборов данных
14
top related