Текущее время: Вс, июл 20 2025, 21:59

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


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

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


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

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