Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];

Вниз

Получить 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.006 c
2-1214340173
lewka-serdceed
2008-06-25 00:42
2008.07.27
оперции с числами


4-1193138709
roughneck
2007-10-23 15:25
2008.07.27
Файловая безопасность в NTFS


15-1213198540
тимохов
2008-06-11 19:35
2008.07.27
WinXP Home Ed + Корпоративная сеть + Прокси


15-1212790668
alex-drob
2008-06-07 02:17
2008.07.27
Как организовать смену иконки treeview на 10 сек


6-1190918176
Sergl
2007-09-27 22:36
2008.07.27
возникает ошибка: Asynchronous socket error 10053





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский