Текущий архив: 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.44 MB
Время: 0.036 c