Главная страница
    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.007 c
2-1214633047
Yury
2008-06-28 10:04
2008.07.27
Access violation...


2-1213914116
dev
2008-06-20 02:21
2008.07.27
IdPOP3


3-1202821453
lead-in
2008-02-12 16:04
2008.07.27
минимальная БД


11-1192180159
Nikfel
2007-10-12 13:09
2008.07.27
Как определить в какую сторону крутится ролик мыши.


4-1193385687
leonidus
2007-10-26 12:01
2008.07.27
Drag файла на TImage





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский