Текущее время: Ср, июл 23 2025, 23:19

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Запись лога выполнения программы
СообщениеДобавлено: Чт, янв 10 2008, 10:15 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 19 2006, 12:16
Сообщения: 30
Откуда: Пермь
Появилось желание записывать полный лог выполнения программы с точностью до ABAP команды, т.е. сделать трассировку ABAP кода. Запускаем какую нибудь программу и на выходе получаем полный листинг алгоритма. Т.е. строки программы в том порядке в котором они выполнялись. Другими словами нужно автоматизировать следующую вещь:
1. запускаем отладчик
2. записываем текущую строку программы
3. нажимаем F5 (выполнение следующей команды)
4. записываем текущую строку программы
5. повторяем п.3 и п.4. пока программа не завершится.


Может есть стандартные инструменты для этого?

Попытка написать что-то своё пока не увенчалась успехом. :(

Пока пытаюсь различными способами усправлять стандарным отладчиком отладчиком. К текущей строке обращаюсь через FIELD-SYMBOLS , но НЕ могу нажать F5 , так как весь процесс висит в отладке. Попытка управлять отладчиком из другого процесса, пока не получилась, так как не знаб как запустить отдельный процесс, а затем управлять другим.


Если есть идеи как это реализовать, то внимательно выслушаю и постараюсь реализовать.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 10 2008, 10:42 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Может быть SE30 будет достаточно, если отключить аггрегацию?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 10 2008, 10:52 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 19 2006, 12:16
Сообщения: 30
Откуда: Пермь
sibrin написал:
Может быть SE30 будет достаточно, если отключить аггрегацию?


Видимо не достаточно, ABAPкода не увидел, отключив агрегацию стали записываться более детальные вызовы.

В результате нужен линтинг алгоритма, а не анализ вызовов.

Пример ABAP кода:
Code:
IF SY-SUBRC = 0.
   x = 1.
ELSE.
   x = 2.
ENDIF.

Для случая SY-SUBRC = 0 в логе должны увидеть:

Code:
IF SY-SUBRC = 0.
   x = 1.
ELSE.
ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Запись лога выполнения программы
СообщениеДобавлено: Чт, янв 10 2008, 11:01 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
ZVlad написал(а):
...


Может есть стандартные инструменты для этого?

Попытка написать что-то своё пока не увенчалась успехом. :(

...

Неужели не осталось более насущных и важных задач, чем заниматься всякой фигнёй?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 10 2008, 11:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
ZVlad написал(а):
Видимо не достаточно, ABAPкода не увидел,

На тулбаре есть кнопочка, чтобы в код провалиться.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Запись лога выполнения программы
СообщениеДобавлено: Чт, янв 10 2008, 11:09 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 19 2006, 12:16
Сообщения: 30
Откуда: Пермь
sy-uname написал(а):
ZVlad написал(а):
...


Может есть стандартные инструменты для этого?

Попытка написать что-то своё пока не увенчалась успехом. :(

...

Неужели не осталось более насущных и важных задач, чем заниматься всякой фигнёй?


Спасибо за комментарий. Может быть практическая польза от этой задачи на первый взгляд и не просматривается, но потребность в ней есть.
Конечно, если горят сроки старта продуктива, то всё что НЕ связано с написанием отчётов и разработкой формуляров может считаться ТОЛЬКО всякой фигнёй!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 10 2008, 11:11 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 19 2006, 12:16
Сообщения: 30
Откуда: Пермь
sibrin написал:
ZVlad написал(а):
Видимо не достаточно, ABAPкода не увидел,

На тулбаре есть кнопочка, чтобы в код провалиться.


Хе, исходный код можно и в SE38 посмотреть, интресует именно логика поведения алгоритма для каждого конкретного случая.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 10 2008, 11:14 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
Сложная постановка.

Может ее упростить немного?

Для логов используется журнал приложений.

В нужном месте необходимо будет добавить код, который бы при возникновении ошибки добавлял запись в журнал 'Zxxx'.

Для работы с журналом предназначена группа функций SBAL. Просмотр журнала транзакция SLG1.

_________________
/nex


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 10 2008, 11:16 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Вы когда нибудь смотрели код, например на gcc, как в них реализован вывод отладочной информации в зависимости от уровня debug=X
?

Не изобратайте велосипед, не по тому пути идете.

_________________
С уважением, VGA
Мой блог


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 10 2008, 11:18 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 19 2006, 12:16
Сообщения: 30
Откуда: Пермь
Bully написал(а):
Сложная постановка.

Может ее упростить немного?

Для логов используется журнал приложений.

В нужном месте необходимо будет добавить код, который бы при возникновении ошибки добавлял запись в журнал 'Zxxx'.

Для работы с журналом предназначена группа функций SBAL. Просмотр журнала транзакция SLG1.


Это не подойдёт, это для записи состояния в определённых точках, а требуется именно полная последовательность выполнения строк ABAP кода.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 10 2008, 11:20 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 19 2006, 12:16
Сообщения: 30
Откуда: Пермь
vga написал(а):
Вы когда нибудь смотрели код, например на gcc, как в них реализован вывод отладочной информации в зависимости от уровня debug=X
?

Не изобратайте велосипед, не по тому пути идете.


А поподробнее, что есть "gcc"?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 10 2008, 11:31 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
ZVlad написал(а):
vga написал(а):
Вы когда нибудь смотрели код, например на gcc, как в них реализован вывод отладочной информации в зависимости от уровня debug=X
?

Не изобратайте велосипед, не по тому пути идете.


А поподробнее, что есть "gcc"?


Мда, тяжело когда ABAP первый язык ;-)

http://www.oopweb.com/CPP/Documents/Deb ... iques.html

_________________
С уважением, VGA
Мой блог


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 10 2008, 11:46 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 06 2007, 16:13
Сообщения: 28
ZVlad написал(а):
vga написал(а):
Вы когда нибудь смотрели код, например на gcc, как в них реализован вывод отладочной информации в зависимости от уровня debug=X
?

Не изобратайте велосипед, не по тому пути идете.


А поподробнее, что есть "gcc"?


Автоматической трассировки скорее всего нет. Это все делается ручками. посмотри в сторону LOG-POINT (при условии что у тебя новый базис).
https://www.sdn.sap.com/irj/sdn/weblogs ... b/wlg/2306


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Запись лога выполнения программы
СообщениеДобавлено: Чт, янв 10 2008, 11:58 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
ZVlad написал(а):
....
Спасибо за комментарий. Может быть практическая польза от этой задачи на первый взгляд и не просматривается, но потребность в ней есть.
Конечно, если горят сроки старта продуктива, то всё что НЕ связано с написанием отчётов и разработкой формуляров может считаться ТОЛЬКО всякой фигнёй!

У кого-то они горят, у кого-то не горят. Но дело не в этом.
Просто логику небольшого кода можно понять и без пошаговой трассировки, в сложных-же случаев даже урезанный лог в виде вызовов ФМ оказывается довольно объёмным и громоздким для разбирательства. Тем более, как показывает моя практики - в коде интересуют именно точки в которых происходит заполнение, присвоение, изменение неких переменных. И сложность вычисления таких точек от версии к версии только возрастает (использование field-symbols, классов и объектных событий). И в чём здесь может помочь пошаговый лог выполнения транзакции?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Запись лога выполнения программы
СообщениеДобавлено: Чт, янв 10 2008, 12:57 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 06 2007, 16:13
Сообщения: 28
sy-uname написал(а):
ФМ оказывается довольно объёмным и громоздким для разбирательства. Тем более, как показывает моя практики - в коде интересуют именно точки в которых происходит заполнение, присвоение, изменение неких переменных. И сложность вычисления таких точек от версии к версии только возрастает (использование field-symbols, классов и объектных событий). И в чём здесь может помочь пошаговый лог выполнения транзакции?


Если разбирать ВСЕ - как первоначально было указано в вопросе - то разобрать такой лог практически нереально( слишком уж трудоемко ). А вот грамотно расставленные чекпоинты - вещь полезная для анализа. Как показывает моя практика( в абапе применять не приходилось ) 5-10 чекпоинтов для программы со средне-запутанной логикой вполне достаточно - если больше то чильно муторно получается анализировать.

В общем мое ИМХО: если приперло, то подумать где именно нужны чекпоинты с каким уровнем и залогировать только эти места. Их должно быть не слишком много, они должны отключаться "одним движением".


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB