powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Есть ли в Каше Callstack?
9 сообщений из 9, страница 1 из 1
Есть ли в Каше Callstack?
    #33126593
Tony_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет

Не знает ли кто как внутри метода узнать какой метод его вызвал?
...
Рейтинг: 0 / 0
Есть ли в Каше Callstack?
    #33126748
Rostislav1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
$STACK
...
Рейтинг: 0 / 0
Есть ли в Каше Callstack?
    #33129245
Tony_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну это немного не то, ведь из $STACK можно получить только строку вызова, а не метод в которой она находиться.
...
Рейтинг: 0 / 0
Есть ли в Каше Callstack?
    #33129270
Rostislav1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
$STACK(x,"PLACE")

PLACE — Returns the entry reference and command number of the last command executed at a specified context level. The value is returned in the following format for DO and user-defined function contexts: "label[+offset][^routine name] +command". For XECUTE contexts, the following format is used: "@ +command".

В приципе оттуда можно выцарапать имя метода.
...
Рейтинг: 0 / 0
Есть ли в Каше Callstack?
    #33129652
Tony_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорри немного некорректно вопрос сформулировал:
имя метода да я выципляю, а вот имя класса (а именно его мне надо) ну никак там нет, а очень надо, так как у меня около десятка унаследованных классов... :(

можно писать конечно лог, но это не то...
...
Рейтинг: 0 / 0
Есть ли в Каше Callstack?
    #33130128
Сашок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Об имени класса также можно сделать предположение из стека вызова, так как обычно компилятор создает программы с тем же именем, добавляя к ним цифры через точку.
А вообще немного странноват вопрос - ведь целевой метод может быть вызван и не из класса, а, например, обычной рутиной, созданной изначально как INT.
При сильном желании можно в вызываемый метод передать имя вызвавшего класса в качестве параметра.
...
Рейтинг: 0 / 0
Есть ли в Каше Callstack?
    #33130755
Tony_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СашокОб имени класса также можно сделать предположение из стека вызова, так как обычно компилятор создает программы с тем же именем, добавляя к ним цифры через точку.
А вообще немного странноват вопрос - ведь целевой метод может быть вызван и не из класса, а, например, обычной рутиной, созданной изначально как INT.
При сильном желании можно в вызываемый метод передать имя вызвавшего класса в качестве параметра.

в общем то согласен, но это не всегда ясно...
а на счет вызова из процедурины, то у меня все методы как Method и соответственно имя класса должно быть точное... или не так?!
...
Рейтинг: 0 / 0
Есть ли в Каше Callstack?
    #33132422
Сашок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автора на счет вызова из процедурины, то у меня все методы как Method и соответственно имя класса должно быть точное
Я имею в виду, что если у тебя в классе A classmethod M1, то вызван он может быть и не из метода какого-то класса, а из обчной (простой-распростой) прграммы (что в каше с расширением INT хранятся). А ведь еще и из xecute может быть метод вызван -- это еще один уровень стека, как и do, тут тебе совсем плохо станет стек раскручивать.
Но если никаких таких программ у тебя нет - все строго объектно-ориентировнное, то остается тебе крутить стек и сравнивать имена программ с именами классов.
...
Рейтинг: 0 / 0
Есть ли в Каше Callstack?
    #33132902
Tony_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сашок[quot автор]Но если никаких таких программ у тебя нет - все строго объектно-ориентировнное, то остается тебе крутить стек и сравнивать имена программ с именами классов.
вот это меня больше всего в нем и бесит - наполовину ООП, а наполовнину ни пойми что :(
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Есть ли в Каше Callstack?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]