Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

Как получить в процедуре имя процедуры, которая её вызвала   Найти похожие ветки 

 
Mild ©   (2003-10-31 16:32) [0]

Чисто теоретический вопрос. Просто возник спор.
Есть несколько процедур, которые вызывают другую, одну и ту же процедуру.
Можно ли (если можно, то каким образом) в вызываемой процедуре определить, какая процедура её вызывает, без передачи параметров.


 
handra ©   (2003-10-31 17:11) [1]

если процедура относится к объекту (его метод), то можно изучит дамп памяти и таблицу методов - дожно помочь...


 
default ©   (2003-10-31 17:57) [2]

без каких-либо флагов никак


 
Ihor Osov'yak ©   (2003-10-31 17:59) [3]

В стеке есть адресс возврата. То есть точку вызова идентифицировать можно. Но дальше - сложно. Так как несколько точек вызова могут отноститься к одной процедуре. Хотя начало процедуры можно пытаться определить по специфическим манипуляциям с ebp, esp.. Но, имхо, єто несколько неоднозначно..

Зы, хотя если есть доступ к отдладочной инфо - то по идее без проблем :-)


 
default ©   (2003-10-31 18:05) [4]

можно определять нижнюю и верхнюю границы адресов в которых находится код процедуры и из твоей процедуры по стековому адресу возврата определять принадлежность к той или иной вызвавшей процедуре



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.029 c
1-41472
Star
2003-10-28 02:19
2003.11.13
TGraphic


14-41973
Юрий Зотов
2003-10-13 13:35
2003.11.13
По поручению Красной Майки (закрытие сезона).


1-41723
Dr. Well
2003-11-03 16:20
2003.11.13
Проблема с изменением размеров TImage в RUN-time


1-41720
Ivolg
2003-11-03 18:12
2003.11.13
Перехват (X)


7-42179
AndreySoft
2003-08-28 13:13
2003.11.13
Как определить объём жёсткого