tmpa-2015: multi-module application tracing in z/os environment
TRANSCRIPT
![Page 1: TMPA-2015: Multi-Module Application Tracing in z/OS Environment](https://reader033.vdocuments.us/reader033/viewer/2022042722/58a6d9351a28abef698b5335/html5/thumbnails/1.jpg)
Трассировка многомодульного приложения в среде
операционной системы z/OS
Ростислав Ефремовcтудент математико-механического
факультета СПБГУSoftware Engineer, EMC
TMPA 2015
![Page 2: TMPA-2015: Multi-Module Application Tracing in z/OS Environment](https://reader033.vdocuments.us/reader033/viewer/2022042722/58a6d9351a28abef698b5335/html5/thumbnails/2.jpg)
Mainframe – System Z
• Канальная подсистема• Высокая надежность• Система безопасности• Обратная совместимость• Нишевый продукт
2
![Page 3: TMPA-2015: Multi-Module Application Tracing in z/OS Environment](https://reader033.vdocuments.us/reader033/viewer/2022042722/58a6d9351a28abef698b5335/html5/thumbnails/3.jpg)
Проблемы Mainframe
3
• Обратная совместимость• Закрытость разработок• …
• Чтобы с этим справиться важно иметьинструменты исследования приложений среды ОС z/OS
![Page 4: TMPA-2015: Multi-Module Application Tracing in z/OS Environment](https://reader033.vdocuments.us/reader033/viewer/2022042722/58a6d9351a28abef698b5335/html5/thumbnails/4.jpg)
Трасса выполнения
Применение:• Анализ/чтение трассы как средство отладки
и понимания работы программы• Построение различных продуктов для
анализа трассы (например, состояние гонки, целостность данных)
4
![Page 5: TMPA-2015: Multi-Module Application Tracing in z/OS Environment](https://reader033.vdocuments.us/reader033/viewer/2022042722/58a6d9351a28abef698b5335/html5/thumbnails/5.jpg)
Трассировка
Подходы к трассировке HLASM программ:• Статическая инструментация• Динамическая инструментация• Использование средств ОС z/OS
– GTF trace– SYSTRACE– SLIP trace
5
![Page 6: TMPA-2015: Multi-Module Application Tracing in z/OS Environment](https://reader033.vdocuments.us/reader033/viewer/2022042722/58a6d9351a28abef698b5335/html5/thumbnails/6.jpg)
План
• Поиск методов статической инструментации бинарного кода
• Сравнение их производительности• Исследование воздействия методов на
окружение исследуемой программы• Выбор метода и реализация прототипа
трассировщика
6
![Page 7: TMPA-2015: Multi-Module Application Tracing in z/OS Environment](https://reader033.vdocuments.us/reader033/viewer/2022042722/58a6d9351a28abef698b5335/html5/thumbnails/7.jpg)
Методы статической инструментации
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
![Page 8: TMPA-2015: Multi-Module Application Tracing in z/OS Environment](https://reader033.vdocuments.us/reader033/viewer/2022042722/58a6d9351a28abef698b5335/html5/thumbnails/8.jpg)
Сравнение производительности
8
![Page 9: TMPA-2015: Multi-Module Application Tracing in z/OS Environment](https://reader033.vdocuments.us/reader033/viewer/2022042722/58a6d9351a28abef698b5335/html5/thumbnails/9.jpg)
Методы трассировки
• Recovery routine/ESPIE– Метод достаточно медленный (ESTAI)– Сильные ограничения на окружение
• SVC hooking– Метод быстрый– Средние ограничения на окружение– Привилегированный режим
• TRAP– Очень быстрый метод– Слабые ограничения на окружение
9
![Page 10: TMPA-2015: Multi-Module Application Tracing in z/OS Environment](https://reader033.vdocuments.us/reader033/viewer/2022042722/58a6d9351a28abef698b5335/html5/thumbnails/10.jpg)
Существующие инструменты
• IDF (Interactive Debug Facility)– RECOVERY/SVC
• z/XDC (Extended Debugging Controller)– RECOVERY/SVC
• TDF (Trap Debug Facility)– TRAP
• RootCause for z/OS– ?
10
![Page 11: TMPA-2015: Multi-Module Application Tracing in z/OS Environment](https://reader033.vdocuments.us/reader033/viewer/2022042722/58a6d9351a28abef698b5335/html5/thumbnails/11.jpg)
SVC hooking
SVC hooking• Реализовано в z/XDC и IDF• Работает в любом окружении z/OS кроме
SRB, cross memory mode• Проще в реализации, чем TRAP• Специфика реализации позволяет добавить
TRAP трассировку для SRB и cross memory
11
![Page 12: TMPA-2015: Multi-Module Application Tracing in z/OS Environment](https://reader033.vdocuments.us/reader033/viewer/2022042722/58a6d9351a28abef698b5335/html5/thumbnails/12.jpg)
Пример вывода
12
![Page 13: TMPA-2015: Multi-Module Application Tracing in z/OS Environment](https://reader033.vdocuments.us/reader033/viewer/2022042722/58a6d9351a28abef698b5335/html5/thumbnails/13.jpg)
Разработано
• Программа, реализующая все четыре метода перехвата прыжков– Тестирование скорости– Код для TRAP и ESTAE можно переносить в тестировщик
• Прототип трассировщика на SVC hooking– Разработан аналог соответствующим механизмам в IDF
и z/XDC– Работает в любом окружении z/OS кроме SRB, cross
memory mode– Нет проблем с авторизацией в отличие от TRAP– Позволяет добавить использование TRAP
подпрограммы для трассировки13
![Page 14: TMPA-2015: Multi-Module Application Tracing in z/OS Environment](https://reader033.vdocuments.us/reader033/viewer/2022042722/58a6d9351a28abef698b5335/html5/thumbnails/14.jpg)
Перспективы
• Добавление поддержки SRB и разных режимов адресных пространств:– Добавление TRAP подпрограммы трассировки – Развитие анализатора кода
• Поиск способов трассировки SRB в secondary address space mode
• Реализация интерфейса для задания входных наборов данных
14