Форум: "Основная";
Текущий архив: 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