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

Вниз

Отладка DLL встроенным отладчиком.   Найти похожие ветки 

 
SergeyBG ©   (2003-09-17 20:24) [0]

Не могу заставить Дельфи 7.0 отлаживать мной написанную ДЛЛ из мной написанного ЕХЕ. ДЛЛ - активный проект. Откомпилирована с дебаг-информацией. Однако точки останова игнорируются.
Загружаю ДЛЛ с помощью функции LoadLibrary.
Что делать? У шестого дельфи те же проблемы.


 
oomneeq ©   (2003-09-17 20:42) [1]

Ecть разные выходы.
Я могу тебе посоветовать свой
Раз ты загружаешь через лоадлайбрэри, значит вызывающий (хост)
проект тоже твой.
В этом случае помести его и твою длл в одну проект-группу,
кроме опции компилятора Debug info (ты вроде бы уже сделал)
скомпилируй длл с опцией линкера External debug info
(птичка слева внизу на закладке Linker в Project options)
- это приводит к появлению *.rsm файла рядом с *.dll
а полсле этого можно стартовать хост-проект самостоятельно, даже не назначая его длл-ному проекту в качестве хоста,
при наличии rsm-файла отладчик запрыгивает в код дллки.

Этот способ особенно удобен, когда много длл с взаимо-вызовами-
заносишь их все в одну проект группу и компилишь как описано-
дальше как сказано, пускаешь главный проект и прыгаешь отладчиком по всем своим дллкам.
удачи в ловле блох!


 
SergeyBG ©   (2003-09-18 19:02) [2]

Спасибо, заработало !!! А группа уже была.


 
Владислав ©   (2003-09-18 19:06) [3]

> oomneeq © (17.09.03 20:42) [1]

А хукнутые dll также можно отлаживать?


 
oomneeq ©   (2003-09-18 22:24) [4]

>Владислав © (18.09.03 19:06) [3]
Не знаю, не хукал :-)


 
Immortal_Death ©   (2003-09-19 00:06) [5]

Владислав ©
ага, можно, только хуки неприменно ставь поглабальнее... ;)


 
JS   (2003-09-19 09:37) [6]

oomneeq, ты упомянул, что есть разные выходы. Подскажи, что делать, если host application не мой, а левый.

Заранее благодарен.


 
Владислав ©   (2003-09-19 09:50) [7]

> oomneeq © (17.09.03 20:42) [1]

External debug info

Это где такая "птичка"? У меня Delphi 6. Птички такой нет :(


 
oomneeq ©   (2003-09-19 12:00) [8]

2Владислав [7]
>External debug info
>то где такая "птичка"? У меня Delphi 6. Птички такой нет :(

Aй эм сори, я неудачно выразился
У меня 5я немецкая дельфи, по немецки это
Mit ext. debug Symbolen
6й у меня нету а в 7й английской она называется
Include remote debug symbols
а находится там где сказал, на закладке Linker в Project Options

2JS (19.09.03 09:37) [6]
Универсальное правило такое:
1)dll, скомпиленая описаным способом и ее rsm должны лежать
рядом.
2)Debug source path (из Project option compiler)
должен содержать путь к dll-ским исходникам

в этом случае при любом хосте (ну естессно, грузящем эту длл :-))
отладчик найдет все что надо.

Просто в частном случае, когда например все в одном каталоге,
условия м.б. необязательными.

Удачной вам всем отладки.


 
oomneeq ©   (2003-09-19 12:22) [9]

>oomneeq © (19.09.03 12:00) [8]
В догонку

Имея Dll, rsm и соответствующие исходники и настроив как описано
можно отлаживать длл на ващще на другом компе- там например, где эту дллку невозможно или ненужно компилить из-за неустановленых компонент и тп. - например вы отсылаете свою дллку смежникам,
они стартуют приложение, использующее вашу дллку и говорят, мол ошибочка. Вот тогда то им и помогут ваши rsm+исходники.

Shit может случиться если имена файлов dll исходников совпадают с имеющимися в других каталогах, а эти каталоги стоят например
в Search path, или в любом другом, до которого дело доходит раньше чем до описанного в Debug path актуального исходника
Ну например при многократных метаниях проектов из каталога в каталог на этапе реорганизации или вообще безо всякой организации
когда по всему диску валаятся куча версиий одного и того же файла
Тогда отладчику не грех и ошибиться :-)

Так что следите за порядком на ваших дисках. Ну и в головах :-)
Хэппи кодинг.



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

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

Наверх




Память: 0.49 MB
Время: 0.015 c
14-4042
kat
2003-09-15 16:54
2003.10.02
Журналы


3-3805
rh
2003-09-10 14:36
2003.10.02
Ошибка при открытии mdb-файла


6-4010
DeHuC
2003-07-29 08:36
2003.10.02
InternetAutoDial


11-3811
D.V.K
2003-01-23 08:06
2003.10.02
Как правильно работать с немодальными формами


3-3781
Plt
2003-09-11 13:08
2003.10.02
Interbase