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

Вниз

Как трассировать 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
6-65563
_kostya_
2003-08-25 14:38
2003.10.20
Как создать письмо с вложенным файлом и сохранить его на диск.


3-65365
MVVD
2003-09-29 12:44
2003.10.20
Чудеса с сервером


1-65479
Delph
2003-10-08 16:33
2003.10.20
MDI формы и проблема ограничения создания дочерних окон


4-65671
mm0
2003-08-11 06:46
2003.10.20
Как узнать имя компьютера?


6-65571
oduvan
2003-08-23 20:25
2003.10.20
Мастера помогите с POST





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