• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы fedotxxl
  • Дата начала
F

fedotxxl

LSI_THREAD_CALLPROC Get the name of the calling procedure
LSI_THREAD_CALLMODULE Get the name of the calling module

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

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

Omh

Второе в агенте на сервере тоже возвращает человеческое значение.
Сам это не проверял, но на форумах писали что это так.

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

Kee_Keekkenen

вопрос не в тему.. а зачем вообще создавать очень сложный DebugTracker ?
 
O

Omh

Для: Kee_Keekkenen
А он не очень сложный
Он вообще без параметров :)
 
Y

Yakov

Для: 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
Утилитой посмотрите на поле $ScriptLib_O документа библиотеки. По смещению 0x0210 находится некая "фигня" вида "*.4.A.6.3.F.F.4.". Ничего не напоминает? :) Кстати, далее идут вполне читаемые строки. К слову, с этого места начинается таблица символов библиотеки. В ней находятся все текстовые строки, используемые в модуле.
 
O

Omh

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

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!