Текущее время: Пн, июл 21 2025, 06:08

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Инициализация в отладчике
СообщениеДобавлено: Вт, апр 30 2013, 11:35 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, сен 17 2012, 21:38
Сообщения: 64
Добрый день!

Подскажите пожалуйста, при заходе в отладчик через /h, как найти место, в котором инициализируется переменная? Чтобы можно было на неё повесить точку наблюдения, например.
Или это можно сделать только тупым нажатием Ф5/Ф6?
Заранее спасибо!

З.Ы. Честно пользовался поиском, безрезультатно)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Инициализация в отладчике
СообщениеДобавлено: Вт, апр 30 2013, 13:16 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Есть подозрение, что вы неправильно используете термин инициализируется. Объясните подробнее, чего необходимо добиться от отладчика.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Инициализация в отладчике
СообщениеДобавлено: Вт, апр 30 2013, 14:28 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 25 2012, 01:54
Сообщения: 59
думаю как раз все правильно и речь идет о ссылочной переменной, на которую нельзя поставить watchpoint по условию is not initial


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Инициализация в отладчике
СообщениеДобавлено: Вт, апр 30 2013, 14:33 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, сен 17 2012, 21:38
Сообщения: 64
Пономарев Артем написал:
Есть подозрение, что вы неправильно используете термин инициализируется. Объясните подробнее, чего необходимо добиться от отладчика.


Вполне возможно, так как абапом никогда не занимался. Только с точки зрения консультанта) Поэтому, наверно, мне поиск и не дал результатов...

Вопрос следующий. В отладчике я могу просмотреть значения отдельных переменных. И поставить на них точки наблюдения.
Проблема в том, что при заходе в отладчик в самом начале исполняемой программы (через /h), если я руками введу имя переменной, то рядом с ней появится значок молнии. Как я понимаю, это значит, что переменная ещё не объявлена (возможно, понимаю не правильно). И на такую переменную точку наблюдения поставить нельзя.
Мне нужно поймать момент, когда у этой переменной "пропадает молния", но она ещё не заполнена. Чтобы поставить свою точку на неё и посмотреть, откуда она заполняется.
Можно ли этот момент поймать как-нибудь "просто". То есть так, чтобы отладчик сразу перешёл в место объявления этой переменной.
Или можно только нажимая Ф5/Ф6 идти по всему коду программы и смотреть, когда "молния" пропадёт.
Заранее спасибо, извините уж за глупый вопрос)

З.Ы. Под переменной лично я понимаю что-то вроде "ls_test-abcd". То есть, поле структуры или таблицы, на которое мне нужно поставить точку. Возможно тут я так же ошибаюсь с терминологией.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Инициализация в отладчике  Тема решена
СообщениеДобавлено: Вт, апр 30 2013, 14:55 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Ahiless, если вы знаете имя переменной - то не вижу сложностей. В отладчике, пока переменной не существует (она не объявлена), точку наблюдения поставить конечно же нельзя. Но раз вы знаете имя - значит вы знаете и программу, в которой переменная объявлена. Что мешает использовать поиск по коду для выяснения алгоритма заполнения?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Инициализация в отладчике
СообщениеДобавлено: Вт, апр 30 2013, 15:15 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, сен 17 2012, 21:38
Сообщения: 64
Пономарев Артем написал:
Ahiless, если вы знаете имя переменной - то не вижу сложностей. В отладчике, пока переменной не существует (она не объявлена), точку наблюдения поставить конечно же нельзя. Но раз вы знаете имя - значит вы знаете и программу, в которой переменная объявлена. Что мешает использовать поиск по коду для выяснения алгоритма заполнения?


Ничего не мешает, это был скорее теоретический вопрос)
Поиск по коду не всегда удобен, когда речь идёт о довольно больших программах (в моём случае - драйвер расчёта ЗП).
А ставить точку прерывания в месте объявления не всегда удобно по разным причинам.
Но, спасибо за ответ.
Как я понял, всё-таки нет стандартного метода поиска места объявления переменной в отладчике. Поэтому тему можно считать закрытой.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Инициализация в отладчике
СообщениеДобавлено: Ср, май 01 2013, 12:52 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
вопрос странный.
время жизни переменной такое же как у программы или подпрограммы
в которой она объявлена, в рантайме.
любой внешний вызов, например, к экрану/функции/подпрограмме в группе функций загрузит ее в память
и соотв станет доступен сегмент данных со всеми глоб переменными


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Инициализация в отладчике
СообщениеДобавлено: Ср, май 01 2013, 17:44 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Странный или нет - зависит от ситуации =) Действительно бывают моменты, когда нужно поймать все изменения переменной из другой программы, которая еще не загружена в память. Анализ исходников - не самый быстрый способ. Не вижу причины по которой САП не мог бы добавить функцию слежения за еще несуществующими переменными. И field-symbol'ы туда же.

ТС, попробуйте писать не локальный адрес ls_test-abcd, а глобальный вида: (имя _главной_ программы, в которой объевлена переменная)LS_TEST-ABCD. Например (SAPLCOIH)LS_TEST-ABCD. Вдруг переменная уже есть, но вы находитесь в момент старта в другой программе.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Инициализация в отладчике
СообщениеДобавлено: Ср, май 01 2013, 18:50 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
2 weise: Начиная с версии 7.02 есть инструмент, который позволяет осуществлять разные варианты хитрой отладки. Но и там(сюрприз-сюрприз) нужно знание абап. Кличут эту штуку debugger scripting. О том как ее юзать, есть отличные ролики на sdn (раз и два) и статья вот тут

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Инициализация в отладчике
СообщениеДобавлено: Ср, май 01 2013, 21:51 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
weise: в принципе согласен, напр. если нужно определить точку входа в группу функций,
неплохо было бы иметь способ ставить точку наблюдения на переменную в ещё не загруженной программе


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Инициализация в отладчике
СообщениеДобавлено: Пн, май 06 2013, 17:55 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, сен 17 2012, 21:38
Сообщения: 64
Кодер написал(а):
2 weise: Начиная с версии 7.02 есть инструмент, который позволяет осуществлять разные варианты хитрой отладки. Но и там(сюрприз-сюрприз) нужно знание абап. Кличут эту штуку debugger scripting. О том как ее юзать, есть отличные ролики на sdn (раз и два) и статья вот тут


Огромное спасибо за ссылки! Очень интересная вещь)


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

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


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

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


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

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