-
Здравствуйте.
В своё время уже интересовался сабжем (на Мастерах), мне посоветовали JVCL. Там просто ОГРОМНОЕ нагромождение кода и модулей; а мне необходимо сделать всё компактненько, в одном модуле.
Подскажите, в чём суть, каким образом получается получить адреса вызовов? (я уж не спрашиваю, как получать данные из запакованного *.map ресурсника ).
Искренне надеюсь, что истина рядом, и за день можно будет сварганить что-то приемлемое.
Заранее спасибо.
-
-
> каким образом получается получить адреса вызовов?
Раскрутив стек.
Тебе уже сказали - не занимайся фигней, в общем случае задача не решаема.
-
так я и думал - никто не знает )
-
если я правильно понял, то во фреймах хранятся так же параметры вызванных функций; почему в JclDebug нет соответствующего демо ?
-
при fastcall большинство параметров помещаются в регистры
-
Несколько месяцев назад Alex Konshin приводил пример реализации раскрутки стека.
Поищи.
-
> atruhin © (21.11.07 17:44) [6]
а где поискать можно ?
-
Удалено модератором
-
> Сергей М. © (22.11.07 17:01) [8]
Как JCL решает нерешаемую задачу ?
-
Там не так уж много надо взять от ждеди, чтобы call-stack получить.
МОжет не стоит велосипеды изобретать?
-
вообще говоря, я его у же юзаю.
хотя, не очень хочется.
используется один юнит JclDebug, а он в свою очередь тянет ещё 15-20 jcl-ных модулей.
-
как Delphi определяет параметры функций в CallStack-е ?
В Jcl подобной фичи нет вроде
-
>>DevilDevil © (22.11.07 19:40) [12]
Используя отладочную информацию доступную линковщику.
Нет и быть не может.
-
> Как JCL решает нерешаемую задачу ?
>
Плохо она решает. Именно по причине того, что в стеке в общем случае м.б. солянка сборная, а не только фреймы, сгенерированные дельфийским компилятором.
> как Delphi определяет параметры функций в CallStack-е ?
Убери из целевого модуля отлад.информацию - и тут же перестанет определять)
-
> Сергей М. © (23.11.07 08:17) [14]
:) без отладочной информации у тебя и брейкпоинты позеленеют.
-
> DevilDevil © (23.11.07 10:07) [15]
А откуда возьмется отладочная инй-ция в сторонних PE-модулях, используемых процессом твоего приложения ?
В них ведь тоже осуществляется вызов подпрограмм, причем не обязательно в соответствии с дельфийскими умалчиваемыми соглашениями !
-
> Сергей М. © (23.11.07 10:12) [16]
секундочку...
а кто говорил о сторонних приложениях ?
-
> кто говорил о сторонних приложениях ?
Никто не говорил.
PE-модуль - это не обязательно модуль приложения, это м.б. и модуль некоей библиотеки.
-
Ты вообще что сотворяешь-то ? Систему протоколирования "глюков" своего приложения, которое ты впарил "заказчику"?)