Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
ВнизМожно ли узнать имя процедуры. Найти похожие ветки
← →
beglec © (2005-10-23 10:54) [0]Вопрос: Можно ли узнать в процедуре имя процедуры которая ее вызвала.
Например:
Procedure Bebe;
begin
...
// узнать какая процедура вызвала процедуру/функцию bebe
end;
procedure gogogo;
begin
bebe;
end;
← →
Sergey Masloff (2005-10-23 11:26) [1]имя нет.
← →
OldNaum © (2005-10-23 11:55) [2]используй какие-нить флаги, кто тебе мешает?
procedure bebe(who_run_me: integer);
begin
case who_run_me of
0: showmessage("gogogo");
1: showmessage("testtest");
else showmessage("someoneelse");
...
end;
procedure gogogo;
begin
bebe(0);
end;
← →
beglec © (2005-10-23 13:25) [3]Спасибо. Нужен был ответ только да или нет.
если да, то как.
-> OldNaum а если процедуру вызвают из 10000 разных мест ? Да еще из разных программ.
Это выход, согласен, но не рациональный, по крайней мере я так думаю.
← →
Джо © (2005-10-23 14:52) [4]В принципе, я думаю, можно узнать и имя. Для этого придется генерировать для программы detailed map-file (Project/Options/Linker...). Таким образом поступает, например, Jedi"ский обработчик исключений.
← →
nt (2005-10-23 15:41) [5]> Вопрос: Можно ли узнать в процедуре имя процедуры которая
> ее вызвала.
попахивает нарушением локальности...
← →
beglec © (2005-10-23 16:41) [6]->nt - А также пиратством, троянскими конями, спамерством хакерством и фрикерством :)
Нет. Просто делаю обработку логических ошибок.
Типа
Login not found и так далее
а процедур по обработке данных с логинами очень много. Соответственно и много может быть логических ошибок. Делаю теперь везде логи почти на каждую операцию. То что работает уже без сбоев там убираю "логирование"
Просмотря весь код есть одинаковые места с чуть чуть разнвыми вызовами.
В данный момент я просто делаю
AddLog(log,Name Procedure);
Name procedure - название откуда было вызвано. Нужно это чтобы легче было искать логические ошибки. Сами понимаете, что это за ошибки.
Delphi их обнаружить не может.
Поэтому задумался и задался вопросом, а может ли например процедура AddLog распозновать откуда ее вызвали, по мимо того что явно ей указывать.
Логов в программе много пишу, и зачастую переношу простым копированием строки CTRL+C. Частенько забываю исправлять из какой процедуры вызываю. И в случае ошибки в забытом месте, начинается путаница.
Вот и вся проблема.
← →
Erik1 © (2005-10-24 12:30) [7]Используй готовое решние в JCL есть хороший обрабочик исключений, он даже стек показывает. Разумеется этот механизм можно использовать нетолько при исключениях.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.508 c