• Codeby web-security - Курс "Тестирование Веб-Приложений на проникновение с нуля" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь. Мобильный клиент для IOS находится в itunes по этой ссылке

В чем разница между "procedure" и "module" (функци

fedotxxl

Well-known member
09.11.2005
614
0
#1
LSI_THREAD_CALLPROC Get the name of the calling procedure
LSI_THREAD_CALLMODULE Get the name of the calling module

Первое возвращает человеческое значение, второе - бред всякий...

Чего я хочу получить? Я хочу написать DebugTracker, который бы возвращал не только ошибку, процедуру, номер и т.д., но так же и название агента/представления/формыподформы т.д... Каким более менее разумным способом можно получить, где исполнялась процедура?
 

Omh

Lotus team
04.07.2007
2 210
1
#2
Второе в агенте на сервере тоже возвращает человеческое значение.
Сам это не проверял, но на форумах писали что это так.

Кстати, именно сейчас у меня то же та же проблема: как расшифровать эту фигню, что возвращается.
Это какой-то код ноты, в которой вызвана ошибка, т.к. ф-ии из одной биб-ки имеют один и тот же код.
 

Kee_Keekkenen

Well-known member
05.09.2006
639
4
#3
вопрос не в тему.. а зачем вообще создавать очень сложный DebugTracker ?
 

Omh

Lotus team
04.07.2007
2 210
1
#4
Для: Kee_Keekkenen
А он не очень сложный
Он вообще без параметров :)
 
Y

Yakov

#5
Для: fedotxxl
Покажите, пожалуйста, пример обработки исключения с вызовом вашего DebugTracker'а.
Может, достаточно в каждом модуле создать константу Private Const MODULE_NAME = "MyCoolLib", которую каким-либо образом передавать в Tracker?
Либо использовать обработчик типа
Код:
		On Error Goto errorHandler

Exit Sub
errorHandler:
Error Err, Error$ & Chr$(10) & MODULE_NAME & "." & Typename(Me) & "." & Getthreadinfo(1) & " at line " & Cstr(Erl)
Exit Sub
В итоге, клиент получит сообщение об ошибке, содержащее весь стек вызовов, вида:
Код:
Divide by zero
MyCoolLib.SUPERCLASS.SUPERMETHOD at line 2
ThirdPartyLib.MEGACLASS.MEGAMETHOD at line 149
Для: Omh
Утилитой NotesPeek посмотрите на поле $ScriptLib_O документа библиотеки. По смещению 0x0210 находится некая "фигня" вида "*.4.A.6.3.F.F.4.". Ничего не напоминает? :) Кстати, далее идут вполне читаемые строки. К слову, с этого места начинается таблица символов библиотеки. В ней находятся все текстовые строки, используемые в модуле.
 

Omh

Lotus team
04.07.2007
2 210
1
#6
Для: Yakov
Информация выглядит полезной :)
Вернусь на работу - посмотрю.

У меня раньше был errorhandler с параметрами, вроде того, что ты показал.

Сейчас решил немного редизайнить его: не использовать параметры вообще, а внутри брать информацию из GetThreaInfo() с параметрами LSI_THREAD_CALLPROC/LSI_THREAD_CALLMODULE и функций возвращающих код, название и линию ошибки.
 
Вверх Снизу