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

Вниз

Как трассировать DLL?   Найти похожие ветки 

 
Aleksandr ©   (2003-10-07 16:24) [0]

Запускаю программу-тест для своей DLL (одна группа проектов). Ставлю точки прерывания. Иногда (вчера, например), код библиотеки останавливается на этих точках и трассируется, а иногда (сегодня) - шиш. Объясните мне, от чего это зависит?


 
Юрий Зотов ©   (2003-10-07 16:39) [1]

Не от Вас. Есть такая грустная фича у Delphi под XP, тут уж ничего не сделаешь. Связано с тем, что дебаггер по каким-то совершенно непонятным причинам иногда не может подгрузить из DLL отладочную информацию. Можно сделать вот что.

1. В DLL сразу после begin напишите что-нибудь типа вызова MessageBox - чтобы сразу после загрузки DLL тормознуть программу на показе диалога.

2. После появления диалога вернитесь в Delphi, в меню выберите View | Debug Windows | Modules (или нажмите Ctrl+Alt+M), в появивщемся окне щелкните на своей DLL правой кнопкой и выберите Reload Symbol Table.

3. Вернитесь в программу, закройте диалог и продолжайте. Теперь BreakPoint"ы должны работать.


 
Юрий Федоров ©   (2003-10-07 16:39) [2]

build all только вчера делал, или еще и сегодня ?


 
Skier ©   (2003-10-07 16:41) [3]

>Юрий Зотов © (07.10.03 16:39) [1]
можно у библиотеки просто поменять Image Base.


 
Юрий Зотов ©   (2003-10-07 17:00) [4]

> Skier © (07.10.03 16:41) [3]

Я пробовал. И это, и все остальное, о чем писали люди на очень многих форумах. И убедился, что единственный действительно надежный способ - это принудительная перезагрузка таблицы. Правда, грузить ее каждый раз руками было лень, поэтому написал эксперт IDE с невидимым окном. Загрузив DLL, программа посылает ему сообщение и тот грузит таблицу. Но и это тоже не есть хорошо - поэтому в конце концов просто снес XP и вернулся под 2K.


 
Skier ©   (2003-10-07 17:02) [5]

>Юрий Зотов © (07.10.03 17:00) [4]

> И убедился, что единственный действительно надежный способ
> - это принудительная перезагрузка таблицы.

А почему менять Image Base ненадёжно ?


 
Юрий Зотов ©   (2003-10-07 17:07) [6]

В моем случае это просто не помогало. Хотя такой совет на форумах действительно давался - значит, у кого-то это работает, а у кого-то нет. Причины так и остаются непонятными.


 
Aleksandr ©   (2003-10-07 17:10) [7]

Спасибо большое... Гы, у меня это включается/выключается установкой/снятием хоста.


 
Skier ©   (2003-10-07 17:11) [8]

>Юрий Зотов © (07.10.03 17:07) [6]
У меня работало, хотя я тоже не понимаю почему...:)


 
Aleksandr ©   (2003-10-07 17:13) [9]

В смысле, хост убираешь и запускаешь. Потом опять ставишь и запускаешь, и начинает трассироваться %(


 
Chlavik ©   (2003-10-07 17:31) [10]

А вот заметил что Нужно что бы Текущая папка в Delph это была папка в которой находится dll стоит открвть какойто другой файл в другом месте а потом закрыть то debug уже не пашет...



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

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

Наверх




Память: 0.49 MB
Время: 0.016 c
3-65332
sapsi
2003-09-30 08:54
2003.10.20
Паковка-сжатие файла db


1-65436
WondeRu
2003-10-03 16:29
2003.10.20
C++


1-65415
Yttrium
2003-10-06 02:12
2003.10.20
Типа Anti троян


1-65515
PigMey
2003-10-07 20:35
2003.10.20
Обхект и метод Free


3-65352
Andrei123
2003-09-29 13:31
2003.10.20
Key Violation