если у меня выделение/освобождение памяти происходит не с помощью SVC, а используется PC (LINKAGE=SYSTEM) - как мне это дело отследить? есть утечка... решил GTF трейс запустить - а он, похоже, только SVC отслеживает. или я что-то не так делаю.
Как мне помнится. GTF не отслеживает переходы (BALR, BASR, BASSM, BAKR) и cross-memory инструкции. Так что вам надо к SYSTEM TRACE. Во всяком случае PC она трассирует точно.
SYSTEM TRACE - это понятно! но разгребать полный дамп не хотелось, хочется конкретный джоб отследить только на GETMAIN и FREEMAIN. вот и думал GTF использовать. но таки похоже, не выйдет в данном случае... спасибо! отрицательный ответ - тоже ответ! а то замучился искать.
Можно после освобождения памяти заполнять ее шаблоном каким-нибудь. А потом взять дамп и поискать места, где нет шаблона... Я как-то раз так делал. И нашел место, о котором никто не знал, т.к. вызывалось очень редко и текло не очень много.
да оно отмечается... вот только мест таких - дофига! более того - унутре отмечено как освобождённое, а в информации по пулам данный адрес - выделенный.
много мест, где выделяется память. пока что не удалось поймать - где именно течёт, какого размера. а управление - централизованное, через макро, которое всё делает, включая пометки в памяти. хочется для начала понять - какая именно утечка.
пока что сделал GTF на SVC - а вдруг повезёт, и это течёт та, которая обычным способом выделяется, а не через PC. если нет - то придётся, как выше посоветовали, делать дамп джоба, и ковырять системный трейс.
Сообщение отредактировал Bibizyan - Пн, 04.06.2012, 16:03
Из книги MVS Diagnosis: Tools and Service Aids. GFS trace is a diagnostic tool that collects information about the use of the GETMAIN, FREEMAIN, or STORAGE macro.