Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.27;
Скачать: CL | DM;

Вниз

Получить Call-Stack   Найти похожие ветки 

 
DevilDevil ©   (2007-11-19 19:07) [0]

Здравствуйте.

В своё время уже интересовался сабжем (на Мастерах), мне посоветовали JVCL. Там просто ОГРОМНОЕ нагромождение кода и модулей; а мне необходимо сделать всё компактненько, в одном модуле.

Подскажите, в чём суть, каким образом получается получить адреса вызовов? (я уж не спрашиваю, как получать данные из запакованного *.map ресурсника ).

Искренне надеюсь, что истина рядом, и за день можно будет сварганить что-то приемлемое.

Заранее спасибо.


 
trubin ©   (2007-11-19 20:08) [1]

http://rsdn.ru/article/Delphi/DelphiJCL.xml

На основе данной статьи в свое время за пару часов сварганил отладочную версию, и послал клиенту. Там вроде все просто. Если самому делать, может их исходники помогут.


 
Сергей С.   (2007-11-19 21:27) [2]


> каким образом получается получить адреса вызовов?


Раскрутив стек.

Тебе уже сказали - не занимайся фигней, в общем случае задача не решаема.


 
DevilDevil ©   (2007-11-20 10:29) [3]

так я и думал - никто не знает )


 
DevilDevil ©   (2007-11-20 10:47) [4]

если я правильно понял, то во фреймах хранятся так же параметры вызванных функций; почему в JclDebug нет соответствующего демо ?


 
Правильный_Вася   (2007-11-20 11:02) [5]

при fastcall большинство параметров помещаются в регистры


 
atruhin ©   (2007-11-21 17:44) [6]

Несколько месяцев назад Alex Konshin приводил пример реализации раскрутки стека.
Поищи.


 
DevilDevil ©   (2007-11-22 16:59) [7]

> atruhin ©   (21.11.07 17:44) [6]

а где поискать можно ?


 
Сергей М. ©   (2007-11-22 17:01) [8]

Удалено модератором


 
DevilDevil ©   (2007-11-22 17:24) [9]

> Сергей М. ©   (22.11.07 17:01) [8]

Как JCL решает нерешаемую задачу ?


 
KSergey ©   (2007-11-22 18:16) [10]

Там не так уж много надо взять от ждеди, чтобы call-stack получить.
МОжет не стоит велосипеды изобретать?


 
DevilDevil ©   (2007-11-22 19:38) [11]

вообще говоря, я его у же юзаю.
хотя, не очень хочется.

используется один юнит JclDebug, а он в свою очередь тянет ещё 15-20 jcl-ных модулей.


 
DevilDevil ©   (2007-11-22 19:40) [12]

как Delphi определяет параметры функций в CallStack-е ?
В Jcl подобной фичи нет вроде


 
vpbar ©   (2007-11-22 22:28) [13]

>>DevilDevil ©   (22.11.07 19:40) [12]
Используя отладочную информацию доступную линковщику.
Нет и быть не может.


 
Сергей М. ©   (2007-11-23 08:17) [14]


> Как JCL решает нерешаемую задачу ?
>


Плохо она решает. Именно по причине того, что в стеке в общем случае м.б. солянка сборная, а не только фреймы, сгенерированные дельфийским компилятором.


> как Delphi определяет параметры функций в CallStack-е ?


Убери из целевого модуля отлад.информацию - и тут же перестанет определять)


 
DevilDevil ©   (2007-11-23 10:07) [15]

> Сергей М. ©   (23.11.07 08:17) [14]

:) без отладочной информации у тебя и брейкпоинты позеленеют.


 
Сергей М. ©   (2007-11-23 10:12) [16]


> DevilDevil ©   (23.11.07 10:07) [15]


А откуда возьмется отладочная инй-ция в сторонних PE-модулях, используемых процессом твоего приложения ?
В них ведь тоже осуществляется вызов подпрограмм, причем не обязательно в соответствии с дельфийскими умалчиваемыми соглашениями !


 
DevilDevil ©   (2007-11-23 14:14) [17]

> Сергей М. ©   (23.11.07 10:12) [16]

секундочку...
а кто говорил о сторонних приложениях ?


 
Сергей М. ©   (2007-11-23 14:17) [18]


> кто говорил о сторонних приложениях ?


Никто не говорил.

PE-модуль - это не обязательно модуль приложения, это м.б. и модуль некоей библиотеки.


 
Сергей М. ©   (2007-11-23 14:19) [19]

Ты вообще что сотворяешь-то ? Систему протоколирования "глюков"  своего приложения, которое ты впарил "заказчику"?)


 
DevilDevil ©   (2007-11-23 14:55) [20]

> Сергей М. ©   (23.11.07 14:19) [19]
> Ты вообще что сотворяешь-то ? Систему протоколирования "глюков"
>  своего приложения, которое ты впарил "заказчику"?)


хе-хе...
я бы сказал "Систему протоколирования глюков для своего разрабатываемого приложения, которое я впарю заказчику"


 
Сергей М. ©   (2007-11-23 15:25) [21]


> DevilDevil ©   (23.11.07 14:55) [20]


Хнёй ты занялся, скажу я тебе)

Достаточно получить  строку с дословным сообщением об исключении)


 
DevilDevil ©   (2007-11-24 14:54) [22]

> Сергей М. ©   (23.11.07 15:25) [21]

НЕДОСТАТОЧНО !!!


 
Германн ©   (2007-11-24 19:49) [23]


> DevilDevil ©   (24.11.07 14:54) [22]

Ну раз недостаточно (а порой действительно так), то потрать $99 на Еуреку  и не пожалеешь.


 
DevilDevil   (2007-11-25 00:03) [24]

> Германн ©   (24.11.07 19:49) [23]
что это такое и какой функционал ?


 
Германн ©   (2007-11-25 00:16) [25]


> что это такое и какой функционал ?
>

http://www.eurekalog.com/tutorials.php



Страницы: 1 вся ветка

Текущий архив: 2008.07.27;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.021 c
15-1212860862
WOWA
2008-06-07 21:47
2008.07.27
Какой сервер выбрать?


15-1212718745
brother
2008-06-06 06:19
2008.07.27
посоветуйте монитор...


2-1213986979
Kaer
2008-06-20 22:36
2008.07.27
Парамерт функции


3-1203079907
SerMaxx
2008-02-15 15:51
2008.07.27
Список таблиц базы данных


2-1214306045
Тын-Дын
2008-06-24 15:14
2008.07.27
Корректность конструкции при переопределении конструктора