Multi-Module Application Tracing in z/OS Environment
Rostislav Efremov, Saint Petersburg State University, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
1. Трассировка многомодульного
приложения в среде
операционной системы z/OS
Ростислав Ефремов
cтудент математико-механического
факультета СПБГУ
Software Engineer, EMC
Slava.efremov1994@mail.ru
TMPA 2015
2. Mainframe – System Z
• Канальная подсистема
• Высокая надежность
• Система безопасности
• Обратная совместимость
• Нишевый продукт
2
3. Проблемы Mainframe
3
• Обратная совместимость
• Закрытость разработок
• …
• Чтобы с этим справиться важно иметь
инструменты исследования
приложений среды ОС z/OS
4. Трасса выполнения
Применение:
• Анализ/чтение трассы как средство отладки
и понимания работы программы
• Построение различных продуктов для
анализа трассы (например, состояние
гонки, целостность данных)
4
5. Трассировка
Подходы к трассировке HLASM программ:
• Статическая инструментация
• Динамическая инструментация
• Использование средств ОС z/OS
– GTF trace
– SYSTRACE
– SLIP trace
5
6. План
• Поиск методов статической
инструментации бинарного кода
• Сравнение их производительности
• Исследование воздействия методов на
окружение исследуемой программы
• Выбор метода и реализация прототипа
трассировщика
6
7. Методы статической
инструментации
7
..
SVC 242
0000
TRAP2
..
MODULE1
1)Make trace record
2)Execute the instruction
2)Resume execution
SVC routine
..
instruction
..
MODULE1
1)Make trace record
2)Execute the instruction
2)Resume execution
RECOVERY or ESPIE routine
1)Make trace record
2)Execute the instruction
2)Resume execution
TRAP routine
В результате инструментации instruction заменится
на один из вариантов:
• SVC 242 – вызов SVC routine
• 0000 – вызывает обработчик ABEND
• TRAP2 – вызов TRAP routine
9. Методы трассировки
• Recovery routine/ESPIE
– Метод достаточно медленный (ESTAI)
– Сильные ограничения на окружение
• SVC hooking
– Метод быстрый
– Средние ограничения на окружение
– Привилегированный режим
• TRAP
– Очень быстрый метод
– Слабые ограничения на окружение
9
11. SVC hooking
SVC hooking
• Реализовано в z/XDC и IDF
• Работает в любом окружении z/OS кроме
SRB, cross memory mode
• Проще в реализации, чем TRAP
• Специфика реализации позволяет добавить
TRAP трассировку для SRB и cross memory
11
13. Разработано
• Программа, реализующая все четыре метода
перехвата прыжков
– Тестирование скорости
– Код для TRAP и ESTAE можно переносить в тестировщик
• Прототип трассировщика на SVC hooking
– Разработан аналог соответствующим механизмам в IDF
и z/XDC
– Работает в любом окружении z/OS кроме SRB, cross
memory mode
– Нет проблем с авторизацией в отличие от TRAP
– Позволяет добавить использование TRAP
подпрограммы для трассировки
13
14. Перспективы
• Добавление поддержки SRB и разных
режимов адресных пространств:
– Добавление TRAP подпрограммы трассировки
– Развитие анализатора кода
• Поиск способов трассировки SRB в
secondary address space mode
• Реализация интерфейса для задания
входных наборов данных
14