Текущее время: Вт, июл 22 2025, 21:18

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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