|
Есть ли в Каше Callstack?
|
|||
---|---|---|---|
#18+
Привет Не знает ли кто как внутри метода узнать какой метод его вызвал? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2005, 13:28 |
|
Есть ли в Каше Callstack?
|
|||
---|---|---|---|
#18+
ну это немного не то, ведь из $STACK можно получить только строку вызова, а не метод в которой она находиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2005, 15:38 |
|
Есть ли в Каше Callstack?
|
|||
---|---|---|---|
#18+
$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". В приципе оттуда можно выцарапать имя метода. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2005, 15:46 |
|
Есть ли в Каше Callstack?
|
|||
---|---|---|---|
#18+
Сорри немного некорректно вопрос сформулировал: имя метода да я выципляю, а вот имя класса (а именно его мне надо) ну никак там нет, а очень надо, так как у меня около десятка унаследованных классов... :( можно писать конечно лог, но это не то... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2005, 17:38 |
|
Есть ли в Каше Callstack?
|
|||
---|---|---|---|
#18+
Об имени класса также можно сделать предположение из стека вызова, так как обычно компилятор создает программы с тем же именем, добавляя к ним цифры через точку. А вообще немного странноват вопрос - ведь целевой метод может быть вызван и не из класса, а, например, обычной рутиной, созданной изначально как INT. При сильном желании можно в вызываемый метод передать имя вызвавшего класса в качестве параметра. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 00:51 |
|
Есть ли в Каше Callstack?
|
|||
---|---|---|---|
#18+
СашокОб имени класса также можно сделать предположение из стека вызова, так как обычно компилятор создает программы с тем же именем, добавляя к ним цифры через точку. А вообще немного странноват вопрос - ведь целевой метод может быть вызван и не из класса, а, например, обычной рутиной, созданной изначально как INT. При сильном желании можно в вызываемый метод передать имя вызвавшего класса в качестве параметра. в общем то согласен, но это не всегда ясно... а на счет вызова из процедурины, то у меня все методы как Method и соответственно имя класса должно быть точное... или не так?! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 11:38 |
|
Есть ли в Каше Callstack?
|
|||
---|---|---|---|
#18+
автора на счет вызова из процедурины, то у меня все методы как Method и соответственно имя класса должно быть точное Я имею в виду, что если у тебя в классе A classmethod M1, то вызван он может быть и не из метода какого-то класса, а из обчной (простой-распростой) прграммы (что в каше с расширением INT хранятся). А ведь еще и из xecute может быть метод вызван -- это еще один уровень стека, как и do, тут тебе совсем плохо станет стек раскручивать. Но если никаких таких программ у тебя нет - все строго объектно-ориентировнное, то остается тебе крутить стек и сравнивать имена программ с именами классов. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2005, 03:08 |
|
Есть ли в Каше Callstack?
|
|||
---|---|---|---|
#18+
Сашок[quot автор]Но если никаких таких программ у тебя нет - все строго объектно-ориентировнное, то остается тебе крутить стек и сравнивать имена программ с именами классов. вот это меня больше всего в нем и бесит - наполовину ООП, а наполовнину ни пойми что :( ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2005, 11:27 |
|
|
start [/forum/topic.php?fid=39&fpage=91&tid=1559724]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
others: | 235ms |
total: | 406ms |
0 / 0 |