Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TMPA-2015: Multi-Module Application Tracing in z/OS Environment

2,201 views

Published on

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

Published in: Science
  • Be the first to comment

  • Be the first to like this

TMPA-2015: Multi-Module Application Tracing in z/OS Environment

  1. 1. Трассировка многомодульного приложения в среде операционной системы z/OS Ростислав Ефремов cтудент математико-механического факультета СПБГУ Software Engineer, EMC Slava.efremov1994@mail.ru TMPA 2015
  2. 2. Mainframe – System Z • Канальная подсистема • Высокая надежность • Система безопасности • Обратная совместимость • Нишевый продукт 2
  3. 3. Проблемы Mainframe 3 • Обратная совместимость • Закрытость разработок • … • Чтобы с этим справиться важно иметь инструменты исследования приложений среды ОС z/OS
  4. 4. Трасса выполнения Применение: • Анализ/чтение трассы как средство отладки и понимания работы программы • Построение различных продуктов для анализа трассы (например, состояние гонки, целостность данных) 4
  5. 5. Трассировка Подходы к трассировке HLASM программ: • Статическая инструментация • Динамическая инструментация • Использование средств ОС z/OS – GTF trace – SYSTRACE – SLIP trace 5
  6. 6. План • Поиск методов статической инструментации бинарного кода • Сравнение их производительности • Исследование воздействия методов на окружение исследуемой программы • Выбор метода и реализация прототипа трассировщика 6
  7. 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
  8. 8. Сравнение производительности 8
  9. 9. Методы трассировки • Recovery routine/ESPIE – Метод достаточно медленный (ESTAI) – Сильные ограничения на окружение • SVC hooking – Метод быстрый – Средние ограничения на окружение – Привилегированный режим • TRAP – Очень быстрый метод – Слабые ограничения на окружение 9
  10. 10. Существующие инструменты • IDF (Interactive Debug Facility) – RECOVERY/SVC • z/XDC (Extended Debugging Controller) – RECOVERY/SVC • TDF (Trap Debug Facility) – TRAP • RootCause for z/OS – ? 10
  11. 11. SVC hooking SVC hooking • Реализовано в z/XDC и IDF • Работает в любом окружении z/OS кроме SRB, cross memory mode • Проще в реализации, чем TRAP • Специфика реализации позволяет добавить TRAP трассировку для SRB и cross memory 11
  12. 12. Пример вывода 12
  13. 13. Разработано • Программа, реализующая все четыре метода перехвата прыжков – Тестирование скорости – Код для TRAP и ESTAE можно переносить в тестировщик • Прототип трассировщика на SVC hooking – Разработан аналог соответствующим механизмам в IDF и z/XDC – Работает в любом окружении z/OS кроме SRB, cross memory mode – Нет проблем с авторизацией в отличие от TRAP – Позволяет добавить использование TRAP подпрограммы для трассировки 13
  14. 14. Перспективы • Добавление поддержки SRB и разных режимов адресных пространств: – Добавление TRAP подпрограммы трассировки – Развитие анализатора кода • Поиск способов трассировки SRB в secondary address space mode • Реализация интерфейса для задания входных наборов данных 14

×